中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

怎么在Shell腳本中執行語法檢查調試模式

發布時間:2021-10-23 10:53:10 來源:億速云 閱讀:200 作者:小新 欄目:系統運維

這篇文章將為大家詳細講解有關怎么在Shell腳本中執行語法檢查調試模式,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

啟用 verbose 調試模式

在進入本指導的重點之前,讓我們簡要地探索下 verbose 模式。它可以用 -v 調試選項來啟用,它會告訴 shell 在讀取時顯示每行。

要展示這個如何工作,下面是一個示例腳本來批量將 PNG 圖片轉換成 JPG 格式。

將下面內容輸入(或者復制粘貼)到一個文件中。

#!/bin/bash #convert for image in *.png; do convert  "$image"  "${image%.png}.jpg" echo "image $image converted to ${image%.png}.jpg" done exit 0

接著保存文件,并用下面的命令使腳本可執行:

$ chmod +x script.sh

我們可以執行腳本并顯示它被 Shell 讀取到的每一行:

$ bash -v script.sh

怎么在Shell腳本中執行語法檢查調試模式

顯示shell腳本中的所有行

在 Shell 腳本中啟用語法檢查調試模式

回到我們主題的重點,-n 激活語法檢查模式。它會讓 shell 讀取所有的命令,但是不會執行它們,它(shell)只會檢查語法。

一旦 shell 腳本中發現有錯誤,shell 會在終端中輸出錯誤,不然就不會顯示任何東西。

激活語法檢查的命令如下:

$ bash -n script.sh

因為腳本中的語法是正確的,上面的命令不會顯示任何東西。所以,讓我們嘗試刪除結束 for 循環的 done 來看下是否會顯示錯誤:

下面是修改過的含有 bug 的批量將 png 圖片轉換成 jpg 格式的腳本。

#!/bin/bash #script with a bug #convert for image in *.png; do convert  "$image"  "${image%.png}.jpg" echo "image $image converted to ${image%.png}.jpg" exit 0

保存文件,接著運行該腳本并執行語法檢查:

$ bash -n script.sh

怎么在Shell腳本中執行語法檢查調試模式

檢查 shell 腳本語法

從上面的輸出中,我們看到我們的腳本中有一個錯誤,for 循環缺少了一個結束的 done 關鍵字。shell  腳本從頭到尾檢查文件,一旦沒有找到它(done),shell 會打印出一個語法錯誤:

script.sh: line 11: syntax error: unexpected end of file

我們可以同時結合 verbose 模式和語法檢查模式:

$ bash -vn script.sh

怎么在Shell腳本中執行語法檢查調試模式

在腳本中同時啟用 verbose 檢查和語法檢查

另外,我們可以通過修改腳本的首行來啟用腳本檢查,如下面的例子:

#!/bin/bash -n #altering the first line of a script to enable syntax checking #convert for image in *.png; do convert  "$image"  "${image%.png}.jpg" echo "image $image converted to ${image%.png}.jpg" exit 0

如上所示,保存文件并在運行中檢查語法:

$ ./script.sh script.sh: line 12: syntax error: unexpected end of file

此外,我們可以用內置的 set 命令來在腳本中啟用調試模式。

下面的例子中,我們只檢查腳本中的 for 循環語法。

#!/bin/bash #using set shell built-in command to enable debugging #convert #enable debugging set -n for image in *.png; do convert  "$image"  "${image%.png}.jpg" echo "image $image converted to ${image%.png}.jpg" #disable debugging set +n exit 0

再一次保存并執行腳本:

$ ./script.sh

關于“怎么在Shell腳本中執行語法檢查調試模式”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

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

AI

资中县| 宿迁市| 邯郸县| 勐海县| 崇左市| 新田县| 正镶白旗| 天长市| 宜兰县| 汉中市| 灵璧县| 奈曼旗| 昭觉县| 平阳县| 宜君县| 侯马市| 青海省| 永定县| 石阡县| 棋牌| 乌兰浩特市| 鄱阳县| 临沭县| 德保县| 忻城县| 泸溪县| 会泽县| 康乐县| 大邑县| 蕉岭县| 济阳县| 开原市| 南皮县| 盐津县| 洛宁县| 通河县| 灵台县| 芦溪县| 迁安市| 汉寿县| 布尔津县|