Blog:博客園 個人
調(diào)試腳本所花費的時間常常比編寫代碼還要多。所有編程語言都應該實現(xiàn)的一個特性就是在出現(xiàn)始料未及的情況時,能夠生成跟蹤信息。調(diào)試信息可以幫你弄清楚是什么原因使得程序行為異常。
使用sh -x調(diào)試
運行帶有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 調(diào)試
調(diào)試腳本中部分代碼,可以使用set命令。
set參數(shù)說明:
| 參數(shù) |
說明 |
| -x |
在執(zhí)行時顯示參數(shù)和命令。 |
| +x |
禁止調(diào)試。 |
| -v |
當命令進行讀取時顯示輸入。 |
| +x |
禁止打印輸入。 |
配置shebang調(diào)試
把shebang從#!/bin/bash改成 #!/bin/bash -xv,這樣一來,不用任何其他選項就可以啟用調(diào)試功能了。
|