Shell Script 遇到錯誤時自動退出離開

Shell Script 裡面的指令, 如果沒有用條件控制 (例如 if), 不管之前的指令執行結果如何, 每個指令也會逐一執行, 例如:

上面的程式碼很簡單, 只是用 cd 指令轉換到 /path/dir 目錄, 然後執行 rm 指令, 將所有 .txt 結尾的檔案刪除。

但如果執行 cd 指令的時出錯, 例如 /path/dir 目錄不存在, 或者沒有權限進入, 那便會在當前目錄刪除所有 .txt 副檔名的檔案。


解決方法十分簡單, 只要加上 “set -e” 一行, 那麼 Shell Script 執行指令遇到錯誤時, 便會立即終止執行, 並自動退出離開, 以上面的例子, 可以這樣寫:

當然另一個做法可以用 if 來檢查 cd 的執行結果, 寫法是這樣:




Leave a Reply