溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何在Linux中啟用Shell腳本的調(diào)試模式

發(fā)布時間:2022-01-24 14:39:41 來源:億速云 閱讀:181 作者:柒染 欄目:開發(fā)技術

這篇文章的內(nèi)容主要圍繞如何在Linux中啟用Shell腳本的調(diào)試模式進行講述,文章內(nèi)容清晰易懂,條理清晰,非常適合新手學習,值得大家去閱讀。感興趣的朋友可以跟隨小編一起閱讀吧。希望大家通過這篇文章有所收獲!

在Linux系統(tǒng)中腳本是一個可以儲存一個文件的一系列命令,用戶可以反復調(diào)用該文件多次重新執(zhí)行命令。

在學習腳本或?qū)懩_本的初期階段,我們通常從寫小腳本或者幾行命令的短腳本開始,調(diào)試這樣的腳本時我們通常無非就是通過觀察它們的輸出來確保其正常工作。

然而,當我們開始寫非常長或上千行命令的高級腳本,例如改變系統(tǒng)設置的腳本,在網(wǎng)絡上執(zhí)行關鍵備份 等等,我們會意識到僅僅看腳本輸出是不足以在腳本中找到 Bug 的!

因此,在 Linux 系列中這篇介紹 Shell 腳本調(diào)試, 我們將看看如何啟用 Shell 腳本調(diào)試,然后在之后的系列中解釋不同的 Shell 腳本調(diào)試模式以及如何使用它們。

如何開始寫一個腳本

一個腳本與其它文件的區(qū)別是它的首行,它包含 #! (She-Bang – 釋伴:定義文件類型)和路徑名(解釋器路徑),通知系統(tǒng)該文件是一個命令集合,將被指定程序(解釋器)解釋。

下面是不同類型腳本 首行 示例:

  1. #!/bin/sh          [sh 腳本]

  2. #!/bin/bash        [bash 腳本]

  3. #!/usr/bin/perl    [perl 程序]

  4. #!/bin/awk -f      [awk 腳本]

注意:如果腳本僅包含一組標準系統(tǒng)命令,沒有任何內(nèi)部 Shell 指令,首行或 #! 可以去掉。

如何在 Linux 操作系統(tǒng)執(zhí)行 Shell 腳本

調(diào)用一個腳本腳本的常規(guī)語法是:

  1. $ 腳本名  參數(shù)1 ... 參數(shù)N

另一種可能的形式是明確指定將執(zhí)行這個腳本的 Shell,如下:

  1. $ shell 腳本名  參數(shù)1 ... 參數(shù)N

示例:

  1. $ /bin/bash   參數(shù)1 ... 參數(shù)N     [bash 腳本]

  2. $ /bin/ksh   參數(shù)1 ... 參數(shù)N      [ksh 腳本]

  3. $ /bin/sh   參數(shù)1 ... 參數(shù)N       [sh 腳本]

對于沒有 #! 作為首行,僅包含基礎系統(tǒng)命令的腳本,示例如下:

  1. ### 腳本僅包含標準系統(tǒng)命令

  2. cd /home/$USER

  3. mkdir tmp

  4. echo "tmp directory created under /home/$USER"

使它可執(zhí)行并運行,如下:

  1. $ chmod +x  腳本名

  2. $ ./腳本名

啟用 Shell 腳本調(diào)試模式的方法

下面是主要的 Shell 腳本調(diào)試選項:

  • -v (verbose 的簡稱) – 告訴 Shell 讀取腳本時顯示所有行,激活詳細模式。

  • -n (noexec 或 no ecxecution 簡稱) – 指示 Shell 讀取所有命令然而不執(zhí)行它們,這個選項激活語法檢查模式。

  • -x (xtrace 或 execution trace 簡稱) – 告訴 Shell 在終端顯示所有執(zhí)行的命令和它們的參數(shù)。 這個選項是啟用 Shell 跟蹤模式。

1、 改變 Shell 腳本首行

第一個機制是改變 Shell 腳本首行,如下,這會啟動腳本調(diào)試。

  1. #!/bin/sh 選項

其中, 選項可以是上面提到的一個或多個調(diào)試選項。

2、 調(diào)用 Shell 調(diào)試選項

第二個是使用如下調(diào)試選項啟動 Shell,這個方法也會打開整個腳本調(diào)試。

  1. $ shell 選項   參數(shù)1 ... 參數(shù)N

示例:

  1. $ /bin/bash 選項   參數(shù)1 ... 參數(shù)N

3、 使用 Shell 內(nèi)置命令 set

第三個方法是使用內(nèi)置命令 set 去調(diào)試一個給定的 Shell 腳本部分,如一個函數(shù)。這個機制是重要的,因為它讓我們可以去調(diào)試任何一段 Shell 腳本。

我們可以如下使用 set 命令打開調(diào)試模式,其中選項是之前提到的所有調(diào)試選項。

  1. $ set 選項

啟用調(diào)試模式:

  1. $ set -選項

禁用調(diào)試模式:

  1. $ set +選項

此外,如果我們在 Shell 腳本不同部分啟用了幾個調(diào)試模式,我們可以一次禁用所有調(diào)試模式,如下:

  1. $ set -

關于啟用 Shell 腳本調(diào)試模式,先講這些。正如我們看到的,我們可以調(diào)試一整個 Shell 腳本或者特定部分腳本。

在此系列下面的兩篇文章中,我們會舉例介紹如何使用 Shell 腳本調(diào)試選項,進一步了解 詳細、語法檢查syntax checking、 跟蹤tracing調(diào)試模式。

感謝你的閱讀,相信你對“如何在Linux中啟用Shell腳本的調(diào)試模式”這一問題有一定的了解,快去動手實踐吧,如果想了解更多相關知識點,可以關注億速云網(wǎng)站!小編會繼續(xù)為大家?guī)砀玫奈恼拢?/p>

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI