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