如何調(diào)試Linux shell腳本
更新時間:2013年06月08日 00:44:13 作者:
最簡單的調(diào)試命令當然是使用echo命令。您可以使用echo在任何懷疑出錯的地方打印任何變量值。這也是絕大多數(shù)的shell程序員要花費80%的時間來調(diào)試程序的原因。Shell程序的好處在于不需要重新編譯,插入一個echo命令也不需要多少時間
shell也有一個真實的調(diào)試模式。如果在腳本"strangescript" 中有錯誤,您可以這樣來進行調(diào)試:
sh -x strangescript
這將執(zhí)行該腳本并顯示所有變量的值。
shell還有一個不需要執(zhí)行腳本只是檢查語法的模式??梢赃@樣使用:
sh -n your_script
這將返回所有語法錯誤。
linux/unix shell l腳本調(diào)試方法
Shell提供了一些用于調(diào)試腳本的選項,如下所示:
-n
讀一遍腳本中的命令但不執(zhí)行,用于檢查腳本中的語法錯誤
-v
一邊執(zhí)行腳本,一邊將執(zhí)行過的腳本命令打印到標準錯誤輸出
-x
提供跟蹤執(zhí)行信息,將執(zhí)行的每一條命令和結(jié)果依次打印出來
使用這些選項有三種方法,一是在命令行提供參數(shù)
$ sh -x ./script.sh二是在腳本開頭提供參數(shù)
#! /bin/sh -x第三種方法是在腳本中用set命令啟用或禁用參數(shù)
#! /bin/sh
if [ -z "$1" ]; then
set -x
echo "ERROR: Insufficient Args."
exit 1
set +x
fiset -x和set +x分別表示啟用和禁用-x參數(shù),這樣可以只對腳本中的某一段進行跟蹤調(diào)試。
sh -x strangescript
這將執(zhí)行該腳本并顯示所有變量的值。
shell還有一個不需要執(zhí)行腳本只是檢查語法的模式??梢赃@樣使用:
sh -n your_script
這將返回所有語法錯誤。
linux/unix shell l腳本調(diào)試方法
Shell提供了一些用于調(diào)試腳本的選項,如下所示:
-n
讀一遍腳本中的命令但不執(zhí)行,用于檢查腳本中的語法錯誤
-v
一邊執(zhí)行腳本,一邊將執(zhí)行過的腳本命令打印到標準錯誤輸出
-x
提供跟蹤執(zhí)行信息,將執(zhí)行的每一條命令和結(jié)果依次打印出來
使用這些選項有三種方法,一是在命令行提供參數(shù)
$ sh -x ./script.sh二是在腳本開頭提供參數(shù)
#! /bin/sh -x第三種方法是在腳本中用set命令啟用或禁用參數(shù)
復(fù)制代碼 代碼如下:
#! /bin/sh
if [ -z "$1" ]; then
set -x
echo "ERROR: Insufficient Args."
exit 1
set +x
fiset -x和set +x分別表示啟用和禁用-x參數(shù),這樣可以只對腳本中的某一段進行跟蹤調(diào)試。
您可能感興趣的文章:
- pycharm遠程linux開發(fā)和調(diào)試代碼的方法
- Linux調(diào)試工具GDB使用簡易教程
- Linux應(yīng)用調(diào)試使用gdb和gdbserver命令詳解
- Linux 中Tomcat遠程調(diào)試代碼的實現(xiàn)方法
- 詳解VS2017 Linux 上.NET Core調(diào)試
- Visual Studio 2017通過SSH調(diào)試Linux上.NET Core
- Linux中使用VS Code編譯調(diào)試C++項目詳解
- 在Linux下調(diào)試Python代碼的各種方法
- linux命令之調(diào)試工具strace的深入分析
- Linux內(nèi)核設(shè)備驅(qū)動之內(nèi)核的調(diào)試技術(shù)筆記整理
相關(guān)文章
shell向文件中添加新內(nèi)容的實現(xiàn)方法
Shell腳本是一種為shell編寫的腳本程序,下面這篇文章主要給大家介紹了關(guān)于shell向文件中添加新內(nèi)容的實現(xiàn)方法,需要的朋友可以參考下2023-06-06shell監(jiān)控腳本實例—監(jiān)控mysql主從復(fù)制
分享一例shell腳本,用于監(jiān)測mysql數(shù)據(jù)庫的主從復(fù)制,有需要的朋友不妨參考學習下2013-11-11expect自動檢測并重啟另外一臺服務(wù)器上的程序代碼
expect自動檢測并重啟另外一臺服務(wù)器上的程序的代碼,有需要的朋友可以參考下2013-02-02用expect實現(xiàn)的自動登錄到多臺服務(wù)器的shell腳本
自動登錄到多臺服務(wù)器的shell腳本,用expect來實現(xiàn)的一段代碼,需要的朋友可以參考下2013-02-02阿里云云服務(wù)器Linux系統(tǒng)更新yum源Shell腳本
這篇文章主要介紹了阿里云云服務(wù)器Linux系統(tǒng)更新yum源Shell腳本,阿里云自建了一個包含大多數(shù)系統(tǒng)更新的本地yum源,速度快又好用,需要的朋友可以參考下2014-09-09