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