为什么这个数组检查密钥失败?
Why is this array check for key failing?
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
为什么我总是存在。
我刚刚声明了一个数组,但没有向它添加任何键。
你是说:
if [ ! page_array${page_num+fooc} ]
这是一个无效的表达式(您缺少调用变量的 $
,以及引用元素的括号 --> $var[index]
)。因此,表达式转换为:
if [ ! some_text ]
从man test
我们看到:
! EXPRESSION
EXPRESSION is false
这就是为什么您的表达式进入 else
: 因为它的计算结果为 false。
和下面说的一样,returns "no":
[ ! a ] || echo "no"
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
为什么我总是存在。 我刚刚声明了一个数组,但没有向它添加任何键。
你是说:
if [ ! page_array${page_num+fooc} ]
这是一个无效的表达式(您缺少调用变量的 $
,以及引用元素的括号 --> $var[index]
)。因此,表达式转换为:
if [ ! some_text ]
从man test
我们看到:
! EXPRESSION
EXPRESSION is false
这就是为什么您的表达式进入 else
: 因为它的计算结果为 false。
和下面说的一样,returns "no":
[ ! a ] || echo "no"