[英]what will bash do with an unset variable
我對bash如何處理shell命令中使用的未設置變量的行為感到困惑,如下所示:
rm -rf /$TO_BE_REMOVED
如果我還沒有定義變量TO_BE_REMOVED
該TO_BE_REMOVED
。
如果這樣做,執行的命令將有效地嘗試刪除/
,這是非常非常糟糕的。 我的意思是,它可能大多會失敗(除非您以root身份運行),但仍然會很糟糕。
您可以使用一個簡單的命令自動避免Bash中的許多此類錯誤:
set -eu
如果將其放在Bash腳本的頂部,則解釋器將停止並返回錯誤代碼,如果您的腳本曾經調用了一個返回未檢查錯誤的命令(即-e
部分),或者使用了未定義的錯誤變量( -u
部分)。 這使得Bash更加安全。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.