這篇文章主要介紹shell語(yǔ)法檢查模式的示例分析,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
成都創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都做網(wǎng)站、成都網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿(mǎn)足客戶(hù)于互聯(lián)網(wǎng)時(shí)代的鐵山網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
啟用 verbose 調(diào)試模式
在進(jìn)入本指導(dǎo)的重點(diǎn)之前,讓我們簡(jiǎn)要地探索下 verbose 模式。它可以用 -v 調(diào)試選項(xiàng)來(lái)啟用,它會(huì)告訴 shell 在讀取時(shí)顯示每行。要展示這個(gè)如何工作,下面是一個(gè)示例腳本來(lái)批量將 PNG 圖片轉(zhuǎn)換成 JPG 格式。
將下面內(nèi)容輸入(或者復(fù)制粘貼)到一個(gè)文件中。
#!/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 腳本中啟用語(yǔ)法檢查調(diào)試模式
使用 -n 激活語(yǔ)法檢查模式
它會(huì)讓 shell 讀取所有的命令,但是不會(huì)執(zhí)行它們,它(shell)只會(huì)檢查語(yǔ)法。一旦 shell 腳本中發(fā)現(xiàn)有錯(cuò)誤,shell 會(huì)在終端中輸出錯(cuò)誤,不然就不會(huì)顯示任何東西。
激活語(yǔ)法檢查的命令如下:
$ bash -n script.sh
因?yàn)槟_本中的語(yǔ)法是正確的,上面的命令不會(huì)顯示任何東西。所以,讓我們嘗試刪除結(jié)束 for 循環(huán)的 done 來(lái)看下是否會(huì)顯示錯(cuò)誤:
下面是修改過(guò)的含有 bug 的批量將 png 圖片轉(zhuǎn)換成 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
保存文件,接著運(yùn)行該腳本并執(zhí)行語(yǔ)法檢查:
$ bash -n script.sh
從上面的輸出中,我們看到我們的腳本中有一個(gè)錯(cuò)誤,for 循環(huán)缺少了一個(gè)結(jié)束的 done 關(guān)鍵字。shell 腳本從頭到尾檢查文件,一旦沒(méi)有找到它(done),shell 會(huì)打印出一個(gè)語(yǔ)法錯(cuò)誤:
script.sh: line 11: syntax error: unexpected end of file
我們可以同時(shí)結(jié)合 verbose 模式和語(yǔ)法檢查模式:
$ bash -vn script.sh
我們還可以通過(guò)修改腳本的首行來(lái)啟用腳本檢查
如下面的例子:
#!/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
如上所示,保存文件并在運(yùn)行中檢查語(yǔ)法:
$ ./script.sh
script.sh: line 12: syntax error: unexpected end of file
此外,我們可以用內(nèi)置的 set 命令來(lái)在腳本中啟用調(diào)試模式。
下面的例子中,我們只檢查腳本中的 for 循環(huán)語(yǔ)法。
#!/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
以上是“shell語(yǔ)法檢查模式的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
當(dāng)前文章:shell語(yǔ)法檢查模式的示例分析
網(wǎng)頁(yè)路徑:http://vcdvsql.cn/article28/iigojp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航、網(wǎng)站設(shè)計(jì)公司、品牌網(wǎng)站設(shè)計(jì)、商城網(wǎng)站、網(wǎng)站建設(shè)、響應(yīng)式網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
營(yíng)銷(xiāo)型網(wǎng)站建設(shè)知識(shí)