1
我想存儲鍵值來存儲人們的地址。bash 4中的鍵值字典錯誤地認爲它有一個鍵
以下代碼構建一個bash 4陣列,把一個鍵 - 值,然後嘗試獲取該值對於(不存在的)關鍵:
#!/bin/bash
declare -A addresses
addresses["john doe"]="Cows street 67"
containsElement() {
local e
for e in "${@:2}"; do [[ "$e" == "$1" ]] && return 0; done
return 1
}
NAME="ian nothere"
containsElement "${NAME}" "${addresses[@]}"
if [[ $? -eq 1 ]]; then
echo "Address is known: "
echo ${addresses[${NAME}]}
else
echo "Address unknown"
fi
不幸的是,它返回:
$ ./run.sh
Address is known:
$
我在做什麼錯了?
ERR返回1時,地址是未知。對我來說似乎沒問題。它應該是'如果[[$? -eq 0]]'對嗎? –
Btw .: array'addresses'是全局的,不需要傳遞給你的函數。 – Cyrus
另外,您正在檢查值,而不是鍵。 – anishsane