blog:除錯指令碼所花費的時間常常比編寫**還要多。所有程式語言都應該實現的乙個特性就是在出現始料未及的情況時,能夠生成跟蹤資訊。除錯資訊可以幫你弄清楚是什麼原因使得程式行為異常。個人
執行帶有sh -x
選項的指令碼可以列印出所執行的每一行命令以及當前狀態。
sh -x script.sh
# 或者
bash -x script.sh
例如test.sh
#!/bin/bash
for i in ; do
echo $i
done
執行sh -x test.sh
+ for i in ''
+ echo 103
103+ for i in ''
+ echo 104
104+ for i in ''
+ echo 105
105+ for i in ''
+ echo 106
106+ for i in ''
+ echo 107
107+ for i in ''
+ echo 108
108+ for i in ''
+ echo 109
109
除錯指令碼中部分**,可以使用set
命令。
set引數說明:
引數說明
-x在執行時顯示引數和命令。
+x禁止除錯。
-v當命令進行讀取時顯示輸入。
+x禁止列印輸入。
把shebang從#!/bin/bash
改成#!/bin/bash -xv
,這樣一來,不用任何其他選項就可以啟用除錯功能了。
Shell 指令碼除錯
除錯功能是每一門程式語言都應該實現的重要特性,每個系統程式設計師都應該了解bash的除錯選項 1.使用選項 x,啟動shell指令碼的跟蹤除錯功能,將執行的每一條命令和輸出的結果輸出 test.sh檔案 bin bash foriin do echo i done echo script execu...
除錯shell指令碼
遇見莫名其妙的錯誤,先dos2uinux指令碼。echo命令是最有用的除錯指令碼工具之一。一般在可能出現問題的指令碼前後加入echo命令 使用bash命令引數進行除錯 引數 n 不會執行該指令碼,僅查詢指令碼語法是否有問題,並給出錯誤提示。v 在執行指令碼時,先將指令碼的內容輸出到螢幕上然後執行指令...
shell 指令碼除錯
發表於 2016 4 27 0 03 30 1693 人閱讀 分類 shell 除錯功能是每一門程式語言都應該實現的重要特性,每個系統程式設計師都應該了解bash的除錯選項 1.使用選項 x,啟動shell指令碼的跟蹤除錯功能,將執行的每一條命令和輸出的結果輸出 test.sh檔案 bin bash...