nullglob和数组

时间:2013-04-09 08:53:20

标签: arrays bash glob

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

$ 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

1 个答案:

答案 0 :(得分:4)

unset 'foo[0]'
  

Bash认为var[1]是一个glob,没有找到与之匹配的文件,并且   nullglob的每条指令将其删除,导致您的脚本运行unset   而不是unset var[1] - 没有任何东西得到解决。解决这个问题的正确方法   问题是引用变量名称(并始终明确指定-v):   unset -v 'var[1]'

§ nullglob