婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > shell語法檢查模式詳解

shell語法檢查模式詳解

熱門標簽:百度地圖標注開鎖電話 安陽百應電銷機器人加盟 pageadm實現(xiàn)地圖標注 琿春市地圖標注app 潮州地圖標注 百度中國地圖標注中心 依蘭縣地圖標注app 山東企業(yè)電銷機器人價格 公司400電話辦理價格

啟用 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

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

$ chmod +x script.sh

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

$ bash -v script.sh

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

使用 -n 激活語法檢查模式

它會讓 shell 讀取所有的命令,但是不會執(zhí)行它們,它(shell)只會檢查語法。一旦 shell 腳本中發(fā)現(xiàn)有錯誤,shell 會在終端中輸出錯誤,不然就不會顯示任何東西。

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

$ bash -n script.sh

因為腳本中的語法是正確的,上面的命令不會顯示任何東西。所以,讓我們嘗試刪除結束 for 循環(huán)的 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

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

$ bash -n script.sh

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

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

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

$ bash -vn script.sh

我們還可以通過修改腳本的首行來啟用腳本檢查

如下面的例子:

#!/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 循環(huán)語法。

#!/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

再一次保存并執(zhí)行腳本:

$ ./script.sh

總的來說,我們應該保證在執(zhí)行 Shell 腳本之前先檢查腳本語法以捕捉錯誤。

標簽:常德 香港 公主嶺 連云港 晉中 三明 呼和浩特 林芝

巨人網(wǎng)絡通訊聲明:本文標題《shell語法檢查模式詳解》,本文關鍵詞  shell,語法,檢查,模式,詳解,;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《shell語法檢查模式詳解》相關的同類信息!
  • 本頁收集關于shell語法檢查模式詳解的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 和顺县| 荣昌县| 南京市| 油尖旺区| 嘉禾县| 黎平县| 洮南市| 叶城县| 乐平市| 广宁县| 奉节县| 临沧市| 政和县| 南通市| 襄垣县| 正镶白旗| 鄂伦春自治旗| 昆山市| 赞皇县| 桦甸市| 新化县| 怀化市| 哈密市| 抚顺市| 彝良县| 上饶市| 枣庄市| 城口县| 庆元县| 武安市| 应城市| 纳雍县| 屏边| 从江县| 泽普县| 平凉市| 深水埗区| 江北区| 桐乡市| 万山特区| 尉氏县|