shell除錯命令

2021-10-24 02:01:36 字數 543 閱讀 7379

set -u:遇到不存在的變數就會報錯,並停止執行;

set -x:在執行結果之前,先輸出執行的那一行命令;

set -e:

set -e:指令碼只要發生錯誤,就終止執行

set +e表示關閉-e選項

command || true,使得該命令即使執行失敗,指令碼也不會終止執行;

bash 會把最後乙個子命令的返回值,作為整個命令的返回值。也就是說,只要最後乙個子命令不失敗,管道命令總是會執行成功,因此它後面命令依然會執行,set -e就失效了。

set -o pipefail用來解決這種情況,只要乙個子命令失敗,整個管道命令就失敗,指令碼就會終止執行

在指令碼頭部新增set -euxo pipefail

或執行時傳入引數$ bash -euxo pipefail script.sh進行shell指令碼的除錯

Linux命令學習筆記 更新 shell除錯

nohup linux命令,不結束通話執行命令 nohup 命令執行由 command引數和任何相關的 arg引數指定的命令,忽略所有結束通話 sighup 訊號。在登出後使用 nohup 命令執行後台中的程式。要執行後台中的 nohup 命令,新增 表示 and 的符號 到命令的尾部。如果不將 n...

指令碼命令 利用 tee 命令除錯shell指令碼

在編寫shell指令碼時,除錯是個比較麻煩的事,特別是涉及到多層管道命令的時候,會產生多個中間結果,tee命令的作用是從標準輸入中讀取資料寫入標準輸出或檔案中,利用它可以從管道中讀取中間結果並寫入本地臨時檔案中,通過中間結果可以一步一步的定位到指令碼的錯誤 例項 下面是乙個簡單的指令碼,指令碼中 p...

Shell 指令碼除錯

除錯功能是每一門程式語言都應該實現的重要特性,每個系統程式設計師都應該了解bash的除錯選項 1.使用選項 x,啟動shell指令碼的跟蹤除錯功能,將執行的每一條命令和輸出的結果輸出 test.sh檔案 bin bash foriin do echo i done echo script execu...