Linux Shell腳本系列教程(七):腳本調(diào)試
一、調(diào)試腳本
調(diào)試功能是每一種編程語言都應(yīng)該實(shí)現(xiàn)的重要特性之一,當(dāng)出現(xiàn)一些始料未及的情況時(shí),用它來生成腳本的運(yùn)行信息,調(diào)試信息可以幫你弄清楚是什么原因使得程序發(fā)生崩潰或者行為異常。
二、Bash內(nèi)建調(diào)試功能
使用Bash的內(nèi)建調(diào)試功能,可以對(duì)整個(gè)腳本進(jìn)行調(diào)試,也可以僅對(duì)腳本中的某些語句進(jìn)行調(diào)試。
#使用set -x和set +x對(duì)腳本的某一句進(jìn)行調(diào)試
#!/bin/bash
for i in { 1 2 3 4 5 6 };
do
set -x #開啟調(diào)試功能
echo $i #要調(diào)試的語句
set +x #關(guān)閉調(diào)試功能
done
echo "Script executed."
#使用 -x選項(xiàng)對(duì)整個(gè)腳本進(jìn)行調(diào)試
bash -x script.sh #等價(jià)于sh -x script.sh
三、 自定義調(diào)試功能
Bash內(nèi)建的調(diào)試功能僅能輸出固定格式的調(diào)試信息,但在很多情況下,我們需要以自定義的格式顯示調(diào)試信息,這可以通過 _DEBUG環(huán)境變量來建立這類調(diào)試風(fēng)格。
#使用_DEBUG=on bash script.sh運(yùn)行下列腳本
#!/bin/bash
function DEBUG()
{
[ "$_DEBUG" == "on" ] && $@ || : #使用_DEBUG環(huán)境變量調(diào)試
}
for i in { 1 2 3 }
do
DEBUG echo $i
done
我們?cè)诿恳粋€(gè)需要打印調(diào)試信息的語句前面家DEBUG,如果沒有把_DEBUG=on傳遞個(gè)腳本,那么調(diào)試信息就不會(huì)打印出來。在Bash中,:告訴shell不要進(jìn)行任何操作。
相關(guān)文章
詳解git無法pull倉(cāng)庫refusing to merge unrelated histories
這篇文章主要介紹了詳解git無法pull倉(cāng)庫refusing to merge unrelated histories的相關(guān)資料,需要的朋友可以參考下2017-06-06Shell+Curl網(wǎng)站狀態(tài)檢查腳本 抓出無法訪問的站點(diǎn)
這篇文章主要介紹了Shell+Curl網(wǎng)站狀態(tài)檢查腳本 抓出無法訪問的站點(diǎn),需要的朋友可以參考下2015-10-10linux shell命令行選項(xiàng)與參數(shù)用法詳解
本文介紹了linux shell中使用命令行選項(xiàng)與命令行參數(shù)的方法,在bash中,可以用以下三種方式來處理命令行參數(shù),每種方式都有自己的應(yīng)用場(chǎng)景2014-04-04Linux 刪除文件夾和文件的命令(強(qiáng)制刪除包括非空文件)
linux刪除目錄很簡(jiǎn)單,很多人還是習(xí)慣用rmdir,不過一旦目錄非空,就陷入深深的苦惱之中,現(xiàn)在使用rm -rf命令即可。接下來通過本文給大家介紹Linux 刪除文件夾和文件的命令(強(qiáng)制刪除包括非空文件),感興趣的朋友跟隨腳本之家小編一起學(xué)習(xí)吧2018-05-05一篇教會(huì)你寫90%的shell腳本(入門小結(jié))
這篇文章主要介紹了一篇教會(huì)你寫90%的shell腳本,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05shell腳本自動(dòng)修復(fù)mysql損壞的表
這篇文章主要介紹了shell腳本如何自動(dòng)修復(fù)mysql損壞的表,需要的朋友可以參考下2015-10-10