shell script 的追蹤與 debug

來源:互聯網
上載者:User

標籤:des   style   blog   http   color   io   使用   ar   for   

shell script 的追蹤與 debug

  scripts 在運行之前,最怕的就是出現語法錯誤的問題了!那麼我們如何 debug 呢?有沒有辦法不需要透過直接運行該 scripts 就可以來判斷是否有問題呢?呵呵!當然是有的!我們就直接以 bash 的相關參數來進行判斷吧!

[[email protected] ~]# sh [-nvx] scripts.sh選項與參數:-n  :不要運行 script,僅查詢文法的問題;-v  :再運行 sccript 前,先將 scripts 的內容輸出到螢幕上;-x  :將使用到的 script 內容顯示到螢幕上,這是很有用的參數!範例一:測試 sh16.sh 有無文法的問題?[[email protected] ~]# sh -n sh16.sh # 若文法沒有問題,則不會顯示任何資訊!範例二:將 sh15.sh 的運行過程全部列出來~[[email protected] ~]# sh -x sh15.sh + PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/root/bin+ export PATH+ for animal in dog cat elephant+ echo ‘There are dogs.... ‘There are dogs....+ for animal in dog cat elephant+ echo ‘There are cats.... ‘There are cats....+ for animal in dog cat elephant+ echo ‘There are elephants.... ‘There are elephants....

   除了上面的做法我們還可以:

1. 我們可以在指令碼開始的地方加入這個命令
set -x

2. 也可以向下面這樣直接加在後面
#!/bin/ksh -x

3. 可以在執行指令碼時這樣做
#ksh -x /locale/shell.sh

  請注意,上面範例二中啟動並執行結果並不會有顏色的顯示!鳥哥為了方便說明所以在 + 號之後的資料都加上顏色了! 在輸出的資訊中,在加號後面的資料其實都是命令串,由於 sh -x 的方式來將命令運行過程也顯示出來, 如此使用者可以判斷程式碼運行到哪一段時會出現相關的資訊!這個功能非常的棒!透過顯示完整的命令串, 你就能夠依據輸出的錯誤資訊來訂正你的指令碼了!

  熟悉 sh 的用法,將可以使你在管理 Linux 的過程中得心應手!至於在 Shell scripts 的學習方法上面,需要『多看、多模仿、並加以修改成自己的樣式!』 是最快的學習手段了!網路上有相當多的朋友在開發一些相當有用的 scripts ,若是你可以將對方的 scripts 拿來,並且改成適合自己主機的樣子!那麼學習的效果會是最快的呢!

  另外,我們 Linux 系統本來就有很多的服務啟動指令碼,如果你想要知道每個 script 所代表的功能是什嗎? 可以直接以 vim 進入該 script 去查閱一下,通常立刻就知道該 script 的目的了。 舉例來說,我們之前一直提到的 /etc/init.d/syslog ,這個 script 是幹嘛用的? 利用 vi 去查閱最前面的幾行字,他出現如下資訊:

# description: Syslog is the facility by which many daemons use to log # messages to various system log files.  It is a good idea to always # run syslog.### BEGIN INIT INFO# Provides: $syslog### END INIT INFO

 

  簡單的說,這個指令碼在啟動一個名為 syslog 的常駐程式 (daemon),這個常駐程式可以協助很多系統服務記載她們的登入檔 (log file), 我們的 Linux 建議你一直啟動 syslog 是個好主意!嘿嘿!簡單的看看您就知道啥是啥啦!

另外,本章所有的範例都可以在 http://vbird.dic.ksu.edu.tw/linux_basic/0340bashshell-scripts/scripts-v3.tar.bz2 裡頭找到喔!加油~

 

轉自:  http://vbird.dic.ksu.edu.tw/linux_basic/0340bashshell-scripts_6.php

 

shell script 的追蹤與 debug

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.