shell腳本中set指令


set -x介紹

用於腳本調試,在liunx腳本中可用set -x就可有詳細的日志輸出.免的總是用echo了

參考

#!/bin/bash
set -x
a=${1}
b=$

 結果

bash This is a premium name 1 2
+ a=1
+ b=1

set -e介紹

每個腳本都應該在文件開頭加上set -e,這句語句告訴bash如果任何語句的執行結果不是true則應該退出。這樣的好處是防止錯誤像滾雪球般變大導致一個致命的錯誤,而這些錯誤本應該在之前就被處理掉。如果要增加可讀性,可以使用set -o errexit,它的作用與set -e相同。

參考

#!/bin/bash set-e lp #這里運行會出錯 date 這種情況下,運行一旦出錯就會退出,不放過一個問題: $ ./test.sh lp: Error - nodefaultdestination available. 當然了,這也有不好的地方,有時候命令執行本來就可能是失敗的,你還是希望它繼續,可以臨時加上|| true: #!/bin/bash set-e lp || true date 不過個人覺得這樣的設置用處不是特別大,因為很多時候就是需要處理不同的錯誤情況,而這樣只能要么遇到錯誤退出,要么認為正確,導致無法走到異常分支。

使用-e幫助你檢查錯誤。如果你忘記檢查,bash會幫你執行。不幸的是,你將無法檢查$?,因為如果執行的語句不是返回0,bash將無法執行到檢查的代碼。你可以使用其他的結構:

if [ "$?"-ne 0]; then   
    echo "command failed";   
    exit 1;   
fi   
could be replaced with

能夠被代替為

command || { echo "command failed"; exit 1; }

或者

if ! command; then  
     echo "command failed";   
    exit 1;   
fi  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM