[英]How to unset array in bash?
在 bash shell 為變量:
#!/bin/bash
set -o nounset
my_var=aaa
unset var
echo "$var"
因為set
命令被定義為在未設置變量時返回錯誤,所以最后一行返回錯誤:
第 6 行:var:未綁定變量
好的,這就是我想要的。
現在與 arrays 相同:
#!/bin/bash
set -o nounset
my_array=(aaa bbb)
unset my_array
echo "${my_array[@]}"
但令我驚訝的是,最后一行沒有返回錯誤。 我希望 bash 腳本在未定義數組時返回錯誤。
${my_array[@]}
類似於$@
,它被記錄為被nounset
忽略:
-u
在執行參數擴展時,將除特殊參數“@”和“*”之外的未設置變量和參數視為錯誤。 如果嘗試對未設置的變量或參數進行擴展,則 shell 會打印一條錯誤消息,如果不是交互式的,則以非零狀態退出。
但是,返回數組大小不會被忽略。 在前面添加以下行以確保數組未被取消設置:
: ${#my_array[@]}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.