sh -n ./test.sh (sh是
/bin/sh
是系統提供的可執行指令碼)
sh -x ./test.sh
進入除錯模式後,shell依次執行讀入的語句,產生的輸出中有的帶加號,有的不帶.
帶加號表示該條語句是shell執行的。
不帶加號表示該語句是shell產生的輸出。
在shell中新增乙個睡眠,保證可以有時間中斷除錯
sleep 3 睡眠3
秒執行下乙個語句
在除錯過程中可以按ctrl + z中斷除錯,觀察結果,然後再按
fg鍵回車繼續除錯即可。
(先按f
在按g鍵)
【功能】
: 類似於
gdb的除錯工具,可以完成對
shell
指令碼的斷點設定,單步執行,變數觀察等許多功能
【場合】: 指令碼比較大時,通過
-x引數除錯時已不方便時
.【用法】:
bashdb -c script.sh
bashdb script.sh
bashdb --debugger script.sh
【說明】:該工具預設未安裝,當前最新版本為
:4.4-0.92,
:1). 如果是
ubuntu系統,
直接用apt-get
來安裝
apt-get install bashdb
2). 如果是
centos
等版本,使用
windows:
[root@hadoop007 ~]# tar -xzvf bashdb-4.4-0.92.tar.gz -c /usr/src
[root@hadoop007 ~]# cd /usr/src/bashdb-4.4-0.92
[root@hadoop007 ~]# ./configure
[root@hadoop007 ~]# make install
【常用命令】
l 列出當前行上下各
5行,總共10行
q|quit 退出
h 幫助
/for/ 向後搜尋字串
for
?for? 向前搜尋字串
for
x 1+2 計算算術表示式的值
!! ls -lart 執行
shell命令
n 執行下一條語句
s 4 單步執行
4次,如遇到函式則進入函式裡面
b 4 在行號
4處設定斷點
del 4 刪除行號為
4的斷點
c 10 一直執行到行號
10處
r|run 重新執行當前除錯指令碼
finish 執行到程式最後
linux中除錯shell指令碼
原來的指令碼check.sh monfile var log test testmon.txt logfile var log test testmon.log touch monfile 該指令碼是在window裡編輯的,編輯後上傳到linux的 問題 執行後,目錄下出現的檔案是testmon.t...
Shell 指令碼除錯
除錯功能是每一門程式語言都應該實現的重要特性,每個系統程式設計師都應該了解bash的除錯選項 1.使用選項 x,啟動shell指令碼的跟蹤除錯功能,將執行的每一條命令和輸出的結果輸出 test.sh檔案 bin bash foriin do echo i done echo script execu...
除錯shell指令碼
遇見莫名其妙的錯誤,先dos2uinux指令碼。echo命令是最有用的除錯指令碼工具之一。一般在可能出現問題的指令碼前後加入echo命令 使用bash命令引數進行除錯 引數 n 不會執行該指令碼,僅查詢指令碼語法是否有問題,並給出錯誤提示。v 在執行指令碼時,先將指令碼的內容輸出到螢幕上然後執行指令...