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