declare -A page_array
if [ ! page_array${page_num+fooc} ]
then
echo "key $page_num not exists"
page_array[$page_num]="something"
else
echo "key $page_num exists"
fi
为什么我总是存在。 我刚刚声明了一个数组但没有添加任何键。
答案 0 :(得分:1)
你在说:
if [ ! page_array${page_num+fooc} ]
这是一个无效的表达式(您缺少调用该变量的$
,以及用于引用元素的括号 - > $var[index]
)。因此,表达式转换为:
if [ ! some_text ]
从man test
我们看到:
! EXPRESSION
EXPRESSION is false
这就是为什么你的表达式在else
中输入的原因:因为它的计算结果为false。
与以下内容相同,它返回" no":
[ ! a ] || echo "no"