Linux Shell 程式調試

來源:互聯網
上載者:User

標籤:shell 調試

方法一:在運行指令碼程式時加入調試選項:

【用法】bash –選項./shellScript.sh

-e :如果一個命令返回一個非0退出狀態值(失敗),就退出。

-n : 不需要執行指令碼只是檢查文法結構,返回所有的語法錯誤資訊。

-u : 置換時把未設定的變數看作出錯。

-v: 當讀入shell輸入行時,把它們顯示出來。

-x: 執行命令時,把命令和它們的參數顯示出來。


方法二:在指令碼程式中通過

以在Shell程式內部用“set -選擇項”的形式引用,而“set +選擇項”則將禁止該選擇項起作用。如果只想對程式的某一部分使用某些選擇項時,則可以將該部分用上面兩個語句包圍起來。


(1)未置變數退出(-u)和立即退出(-e)


未置變數退出特性允許使用者對所有變數進行檢查,如果引用了一個未賦值的變數就終止Shell程式的執行。Shell通常允許未置變數的使用,在這種情況下,變數的值為空白。如果設定了未置變數退出選擇項,則一旦使用了未置變數就顯示錯誤資訊,並終止程式的運行。未置變數退出選擇項為-u。


當Shell運行時,若遇到不存在或不可執行檔命令、重新導向失敗或命令非正常結束等情況時,如果未經重新定向,該出錯資訊會顯示在終端螢幕上, 而Shell程式仍將繼續執行。要想在錯誤發生時迫使Shell程式立即結束,可以使用-e選項將Shell程式的執行立即終止。


(2)Shell程式的跟蹤(-v或-x)


調試Shell程式的主要方法是利用Shell命令解釋程式的-v或-x選項來跟蹤程式的執行。-v選擇項使Shell在執行程式的過程中,把它讀入的每一個命令列都顯示出來,而-x選擇項使Shell在執行程式的過程中把它執行的每一個命令在行首用一個+加上命令名顯示出來。並把每一個變數和該變數所取的值也顯示出來。因此,它們的主要區別在於:在執行命令列之前無-v,則顯示出命令列的原始內容,而有-v時則顯示出經過替換後的命令列的內容。


【例子】

#! /bin/bash

iftest(){

     if  [ $# -ne 1  ] 

    then

        echo  " Usage: $0 dir  >" 

        exit  1 

    fi  

   #  set  -v or set  -x      #若選擇方法二,則取消注釋,並選擇其中一個set命令

     if  [ -d " $1 >"  ]

    then

        ls  -l $1 

        exit  0 

    fi  

    #  set  +v or set  +x    #若選擇方法二,則取消注釋,並選擇其中一個set命令 

    echo  " Warn:$1 is not a directory! >" 

    exit  2 

}


iftest ..


Linux 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.