本章主要介紹一些方便的、有效的、更好的輸出調試信息的方法。
本章要學習的知識點
(1)看懂腳本輸出的錯誤信息,并逐步定位到真正的錯誤;
(2)如何堅持shell腳本的語法是否有錯誤;
(3)如何通過track模式找到程序的錯誤;
(4)分析腳本錯誤的一般步驟;
(5)如何在腳本程序中添加DEBUG支持。
當我們運行自己編寫的shell腳本時,經常會遇到腳本輸出錯誤信息。錯誤信息只能說明確實有錯誤發生,但是并不一定告訴我們錯誤所發生的真實原因和出錯位置。因此我們需要對錯誤信息進行分析和推斷,通常沿著報錯行往前面找。
debug模式是一種檢查錯誤的模式,本節主要介紹3中debug模式:
模式 | 選項 | 描述 |
語法檢查模式 | -n | 不執行命令,只進行語法檢查 |
Vebose模式 | -v | 打印shell讀取的所有語句 |
Trace模式 | -x | 打印執行替換操作后shell實際執行的命令 |
進入debug模式的格式:
$/bin/bash –option filename
前面使用的進入debug模式的方法會在腳本的整個運行期間中都起到作用,如果腳本文件很長,這種方式就會產生大量的輸出信息:假如我們只想對某一段代碼或某一個函數進行debug調試,該如何?
解決方案:通過執行set命令可以在腳本的運行過程中打開或關閉debug模式。
它的使用方法如下:
#打開trace debug模式
set –x
#關閉trace debug模式
set +x
我們知道通過執行set –x命令可以讓腳本輸出debug的trace信息,但是當腳本交付使用時,刪除或注釋這些命令也很麻煩。因此,希望有一個開關,通過它控制是否大于debug信息。可以在腳本中使用if語句判斷環境變量DEBUG的值,如果等于TRUE就執行set –x命令,如下所示:
#!/bin/bash
if [ “DEBUG”=”true”]
the
set –x
fi
echo “do stuff…”
if [ “DEBUG”=”true”]
the
set +x
fi
省略
新聞熱點
疑難解答