空变量和数组



我可以创建一个数组,然后从这个数组中删除

$ foo=(a b c)
$ unset foo[0]
$ echo ${foo[*]}
b c

但是,如果设置了nullglob,则不能从数组中删除

$ shopt -s nullglob
$ foo=(a b c)
$ unset foo[0]
$ echo ${foo[*]}
a b c
unset 'foo[0]'

Bash认为var[1]是一个glob,没有找到与它匹配的文件,并且nullglob的每条指令删除它,导致脚本运行unset而不是unset var[1] -并且没有任何东西会被取消设置。解决这个问题的正确方法问题是引用变量名(并且总是显式指定-v):unset -v 'var[1]' .

教派;nullglob

相关内容

  • 没有找到相关文章

最新更新