Linux Shell腳本系列教程(七):腳本調(diào)試
一、調(diào)試腳本
調(diào)試功能是每一種編程語言都應(yīng)該實現(xiàn)的重要特性之一,當(dāng)出現(xiàn)一些始料未及的情況時,用它來生成腳本的運行信息,調(diào)試信息可以幫你弄清楚是什么原因使得程序發(fā)生崩潰或者行為異常。
二、Bash內(nèi)建調(diào)試功能
使用Bash的內(nèi)建調(diào)試功能,可以對整個腳本進行調(diào)試,也可以僅對腳本中的某些語句進行調(diào)試。
#使用set -x和set +x對腳本的某一句進行調(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選項對整個腳本進行調(diào)試
bash -x script.sh #等價于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運行下列腳本
#!/bin/bash
function DEBUG()
{
[ "$_DEBUG" == "on" ] && $@ || : #使用_DEBUG環(huán)境變量調(diào)試
}
for i in { 1 2 3 }
do
DEBUG echo $i
done
我們在每一個需要打印調(diào)試信息的語句前面家DEBUG,如果沒有把_DEBUG=on傳遞個腳本,那么調(diào)試信息就不會打印出來。在Bash中,:告訴shell不要進行任何操作。
相關(guān)文章
詳解git無法pull倉庫refusing to merge unrelated histories
這篇文章主要介紹了詳解git無法pull倉庫refusing to merge unrelated histories的相關(guān)資料,需要的朋友可以參考下2017-06-06Shell+Curl網(wǎng)站狀態(tài)檢查腳本 抓出無法訪問的站點
這篇文章主要介紹了Shell+Curl網(wǎng)站狀態(tài)檢查腳本 抓出無法訪問的站點,需要的朋友可以參考下2015-10-10