本篇內(nèi)容主要講解“怎么在Linux中啟用Shell腳本的調(diào)試模式”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“怎么在Linux中啟用Shell腳本的調(diào)試模式”吧!
目前創(chuàng)新互聯(lián)已為1000多家的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬主機(jī)、網(wǎng)站托管維護(hù)、企業(yè)網(wǎng)站設(shè)計(jì)、費(fèi)縣網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
腳本是存儲(chǔ)在一個(gè)文件的一系列命令。在終端上輸入一個(gè)個(gè)命令,按順序執(zhí)行的方法太弱了,使用腳本,系統(tǒng)中的用戶可以在一個(gè)文件中存儲(chǔ)所有命令,反復(fù)調(diào)用該文件多次重新執(zhí)行命令。
在學(xué)習(xí)腳本或?qū)懩_本的初期階段,我們通常從寫小腳本或者幾行命令的短腳本開始,調(diào)試這樣的腳本時(shí)我們通常無非就是通過觀察它們的輸出來確保其正常工作。
然而,當(dāng)我們開始寫非常長或上千行命令的高級(jí)腳本,例如改變系統(tǒng)設(shè)置的腳本,在網(wǎng)絡(luò)上執(zhí)行關(guān)鍵備份 等等,我們會(huì)意識(shí)到僅僅看腳本輸出是不足以在腳本中找到 Bug 的!
因此,在 Linux 系列中這篇介紹 Shell 腳本調(diào)試, 我們將看看如何啟用 Shell 腳本調(diào)試,然后在之后的系列中解釋不同的 Shell 腳本調(diào)試模式以及如何使用它們。
如何開始寫一個(gè)腳本
一個(gè)腳本與其它文件的區(qū)別是它的首行,它包含 #! (She-Bang - 釋伴:定義文件類型)和路徑名(解釋器路徑),通知系統(tǒng)該文件是一個(gè)命令集合,將被指定程序(解釋器)解釋。
下面是不同類型腳本 首行 示例:
#!/bin/sh [sh 腳本] #!/bin/bash [bash 腳本] #!/usr/bin/perl [perl 程序] #!/bin/awk -f [awk 腳本]
注意:如果腳本僅包含一組標(biāo)準(zhǔn)系統(tǒng)命令,沒有任何內(nèi)部 Shell 指令,首行或 #! 可以去掉。
如何在 Linux 操作系統(tǒng)執(zhí)行 Shell 腳本
調(diào)用一個(gè)腳本腳本的常規(guī)語法是:
$ 腳本名 參數(shù)1 ... 參數(shù)N
另一種可能的形式是明確指定將執(zhí)行這個(gè)腳本的 Shell,如下:
$ shell 腳本名 參數(shù)1 ... 參數(shù)N
示例:
$ /bin/bash 參數(shù)1 ... 參數(shù)N [bash 腳本] $ /bin/ksh 參數(shù)1 ... 參數(shù)N [ksh 腳本] $ /bin/sh 參數(shù)1 ... 參數(shù)N [sh 腳本]
對(duì)于沒有 #! 作為首行,僅包含基礎(chǔ)系統(tǒng)命令的腳本,示例如下:
### 腳本僅包含標(biāo)準(zhǔn)系統(tǒng)命令 cd /home/$USER mkdir tmp echo "tmp directory created under /home/$USER"
使它可執(zhí)行并運(yùn)行,如下:
$ chmod +x 腳本名 $ ./腳本名
啟用 Shell 腳本調(diào)試模式的方法
下面是主要的 Shell 腳本調(diào)試選項(xiàng):
-v (verbose 的簡稱) - 告訴 Shell 讀取腳本時(shí)顯示所有行,激活詳細(xì)模式。
-n (noexec 或 no ecxecution 簡稱) - 指示 Shell 讀取所有命令然而不執(zhí)行它們,這個(gè)選項(xiàng)激活語法檢查模式。
-x (xtrace 或 execution trace 簡稱) - 告訴 Shell 在終端顯示所有執(zhí)行的命令和它們的參數(shù)。 這個(gè)選項(xiàng)是啟用 Shell 跟蹤模式。
1、 改變 Shell 腳本首行
***個(gè)機(jī)制是改變 Shell 腳本首行,如下,這會(huì)啟動(dòng)腳本調(diào)試。
#!/bin/sh 選項(xiàng)
其中, 選項(xiàng)可以是上面提到的一個(gè)或多個(gè)調(diào)試選項(xiàng)。
2、 調(diào)用 Shell 調(diào)試選項(xiàng)
第二個(gè)是使用如下調(diào)試選項(xiàng)啟動(dòng) Shell,這個(gè)方法也會(huì)打開整個(gè)腳本調(diào)試。
$ shell 選項(xiàng) 參數(shù)1 ... 參數(shù)N
示例:
$ /bin/bash 選項(xiàng) 參數(shù)1 ... 參數(shù)N
3、 使用 Shell 內(nèi)置命令 set
第三個(gè)方法是使用內(nèi)置命令 set 去調(diào)試一個(gè)給定的 Shell 腳本部分,如一個(gè)函數(shù)。這個(gè)機(jī)制是重要的,因?yàn)樗屛覀兛梢匀フ{(diào)試任何一段 Shell 腳本。
我們可以如下使用 set 命令打開調(diào)試模式,其中選項(xiàng)是之前提到的所有調(diào)試選項(xiàng)。
$ set 選項(xiàng)
啟用調(diào)試模式:
$ set -選項(xiàng)
禁用調(diào)試模式:
$ set +選項(xiàng)
此外,如果我們在 Shell 腳本不同部分啟用了幾個(gè)調(diào)試模式,我們可以一次禁用所有調(diào)試模式,如下:
$ set -
到此,相信大家對(duì)“怎么在Linux中啟用Shell腳本的調(diào)試模式”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!