歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> SHELL編程

Shell編程:shell script的追蹤與debug

Shell編程:shell script的追蹤與debug   scripts 在運行之前,最怕的就是出現語法錯誤的問題了!那麼我們如何 debug 呢?有沒有辦法不需要透過直接運行該 scripts 就可以來判斷是否有問題呢?呵呵!當然是有的!我們就直接以 bash 的相關參數來進行判斷吧!   C代碼   [root@www ~]# sh [-nvx] scripts.sh      選項與參數: -n  :不要運行 script,僅查詢語法的問題; -v  :再運行 sccript 前,先將 scripts 的內容輸出到螢幕上; -x  :將使用到的 script 內容顯示到螢幕上,這是很有用的參數!   范例一:測試 sh16.sh 有無語法的問題? C代碼   [root@www ~]# sh -n sh16.sh   # 若語法沒有問題,則不會顯示任何資訊!     范例二:將 sh15.sh 的運行過程全部列出來~ C代碼   [root@www ~]# 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....     請注意,上面范例二中運行的結果並不會有顏色的顯示!鳥哥為了方便說明所以在 + 號之後的數據都加上顏色了! 在輸出的信息中,在加號後面的數據其實都是命令串,由於 sh -x 的方式來將命令運行過程也顯示出來, 如此使用者可以判斷程序碼運行到哪一段時會出現相關的資訊!這個功能非常的棒!透過顯示完整的命令串, 你就能夠依據輸出的錯誤資訊來訂正你的腳本了!   熟悉 sh 的用法,將可以使你在管理 Linux 的過程中得心應手!至於在 Shell scripts 的學習方法上面,需要『多看、多模仿、並加以修改成自己的樣式!』 是最快的學習手段了!網絡上有相當多的朋友在開發一些相當有用的 scripts ,若是你可以將對方的 scripts 拿來,並且改成適合自己主機的樣子!那麼學習的效果會是最快的呢!   另外,我們 Linux 系統本來就有很多的服務啟動腳本,如果你想要知道每個 script 所代表的功能是什麼? 可以直接以 vim 進入該 script 去查閱一下,通常立刻就知道該 script 的目的了。 舉例來說,我們之前一直提到的 /etc/init.d/syslog ,這個 script 是干嘛用的? 利用 vi 去查閱最前面的幾行字,他出現如下資訊: C代碼   # 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 是個好主意!嘿嘿!簡單的看看您就知道啥是啥啦!
 
Copyright © Linux教程網 All Rights Reserved