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
我可以创建一个数组,那么此数组了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
unset 'foo[0]'
猛砸认为删除
var[1]
是一个glob,没有找到与之匹配的文件,并且 的每个指令nullglob
r emoves它,导致您的脚本运行unset
而不是unset var[1]
- 并没有任何未设置。解决此问题的正确方法是引用变量名称(并始终明确指定-v
):unset -v 'var[1]'
。
我花了两天时间,终于发现是了nullglob的罪魁祸首!感谢*正确的*方法来使用'unset' – 2015-06-02 00:24:14