2013-04-09 12 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