Blog:博客園 個人
調試腳本所花費的時間常常比編寫代碼還要多。所有編程語言都應該實現(xiàn)的一個特性就是在出現(xiàn)始料未及的情況時,能夠生成跟蹤信息。調試信息可以幫你弄清楚是什么原因使得程序行為異常。
使用sh -x 調試
運行帶有sh -x 選項的腳本可以打印出所執(zhí)行的每一行命令以及當前狀態(tài)。
sh -x script.sh
# 或者
bash -x script.sh
例如test.sh
#!/bin/bash
for i in {103..109}; do
echo $i
done
執(zhí)行sh -x test.sh
+ for i in '{103..109}'
+ echo 103
103
+ for i in '{103..109}'
+ echo 104
104
+ for i in '{103..109}'
+ echo 105
105
+ for i in '{103..109}'
+ echo 106
106
+ for i in '{103..109}'
+ echo 107
107
+ for i in '{103..109}'
+ echo 108
108
+ for i in '{103..109}'
+ echo 109
109
使用set 調試
調試腳本中部分代碼,可以使用set 命令。
set參數(shù)說明:
參數(shù) |
說明 |
-x |
在執(zhí)行時顯示參數(shù)和命令。 |
+x |
禁止調試。 |
-v |
當命令進行讀取時顯示輸入。 |
+x |
禁止打印輸入。 |
配置shebang調試
把shebang從#!/bin/bash 改成 #!/bin/bash -xv ,這樣一來,不用任何其他選項就可以啟用調試功能了。
|