Linux Shell指令碼系列教程(七):指令碼調試_linux shell

來源:互聯網
上載者:User

一、調試指令碼

調試功能是每一種程式設計語言都應該實現的重要特性之一,當出現一些始料未及的情況時,用它來產生指令碼的運行資訊,調試資訊可以幫你弄清楚是什麼原因使得程式發生崩潰或者行為異常。
二、Bash內建調試功能

使用Bash的內建調試功能,可以對整個指令碼進行調試,也可以僅對指令碼中的某些語句進行調試。
#使用set -x和set +x對指令碼的某一句進行調試

複製代碼 代碼如下:

#!/bin/bash
for i in { 1 2 3 4 5 6 };
do
    set -x                         #開啟調試功能
    echo $i                        #要調試的語句
    set +x                         #關閉調試功能
done
echo "Script executed."

複製代碼 代碼如下:

#使用 -x選項對整個指令碼進行調試
bash -x script.sh                  #等價於sh -x script.sh

三、 自訂調試功能

Bash內建的調試功能僅能輸出固定格式的調試資訊,但在很多情況下,我們需要以自訂的格式顯示調試資訊,這可以通過 _DEBUG環境變數來建立這類調試風格。

複製代碼 代碼如下:

#使用_DEBUG=on bash script.sh運行下列指令碼
#!/bin/bash
function DEBUG()
{
   [ "$_DEBUG" == "on" ] && $@ || : #使用_DEBUG環境變數調試
}
for i in { 1 2 3 }
do
    DEBUG echo $i
done     

我們在每一個需要列印調試資訊的語句前面家DEBUG,如果沒有把_DEBUG=on傳遞個指令碼,那麼調試資訊就不會列印出來。在Bash中,:告訴shell不要進行任何操作。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.