2013-04-09 11 views
1

我可以创建一个数组,那么此数组了nullglob和数组

$ 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 

回答

3
unset 'foo[0]' 

猛砸认为删除var[1]是一个glob,没有找到与之匹配的文件,并且 的每个指令nullglob r emoves它,导致您的脚本运行unset 而不是unset var[1] - 并没有任何未设置。解决此问题的正确方法是引用变量名称(并始终明确指定-v): unset -v 'var[1]'

§ nullglob

+0

我花了两天时间,终于发现是了nullglob的罪魁祸首!感谢*正确的*方法来使用'unset' – 2015-06-02 00:24:14