在bash shell中,变量的使用方法如下:
#!/bin/bash
set -o nounset
my_var=aaa
unset var
echo "$var"
因为set
命令的定义是如果变量未设置,则返回错误,所以最后一行返回错误:
第六行:var: 未设置变量
好的,这正是我想要的。
现在同样的事情发生在数组中:
#!/bin/bash
set -o nounset
my_array=(aaa bbb)
unset my_array
echo "${my_array[@]}"
但出乎意料的是,最后一行并没有返回错误。我希望bash脚本在数组未定义时能返回错误。
${my_array[@]}
形式具有这种属性的文档在哪里记录? - John Bollingernounset
时,"${my_array[@]}"
会产生错误。那是一个bug。看起来他们在修复空数组问题时过度补偿了。我认为新的行为是一个bug。这个bug并不是很严重,因为nounset
检查中有几个漏洞。 - pjhman bash
。 - choroba