ShellCheck是一個(gè)用于bash/sh shell腳本的靜態(tài)分析工具,可以輔助檢查腳本語法錯(cuò)誤,給出建議增強(qiáng)腳本健壯性。
作者創(chuàng)建了一個(gè)在線網(wǎng)站 https://www.shellcheck.net/ ,你可以直接將代碼貼到編輯框中進(jìn)行在線檢查。

當(dāng)然你也可以將工具部署到本地計(jì)算機(jī)使用。
本地部署
聯(lián)網(wǎng)安裝
最簡(jiǎn)單的方式是使用包管理器安裝。基本上各種平臺(tái)都能直接安裝,比如筆者的archlinux機(jī)器:
$sudopacman-Sshellcheck
安裝成功后,測(cè)試腳本
$shellchecktest.sh
離線安裝
在Github上直接下載對(duì)應(yīng)平臺(tái)預(yù)編譯好的可執(zhí)行文件,解壓縮到本地即可使用。

代碼編輯器集成
可以根據(jù)官方說明安裝VIM、VSCODE等編輯器插件直接在編譯器中使用。
使用示例
示例一
$cattest.sh
#!/bin/bash
cat$0
foriin{1..10}
do
echo$i
done
$shellchecktest.sh
shellcheck輸出內(nèi)容如下:

可以看出,shellcheck使用的關(guān)鍵字是info,說明腳本本身沒有語法錯(cuò)誤,但給出了一些建議使腳本更加健壯。
示例二
再看一個(gè)包含警告和錯(cuò)誤的腳本。
$cattest1.sh #!/bin/bash var1=42 var2=70 echo$(($var1+$var2)) $shellchecktest1.sh
shellcheck輸出內(nèi)容如下:

首先是warning信息,第3行變量賦值有一個(gè)空格,實(shí)際上是不對(duì)的。
第4行給出error信息,變量與=之間不能有空格,語法錯(cuò)誤。
第5行意圖是輸出兩個(gè)變量的和,但(())內(nèi)變量不需要使用$符合。
審核編輯:劉清
-
計(jì)算機(jī)
+關(guān)注
關(guān)注
19文章
7806瀏覽量
93188 -
Shell
+關(guān)注
關(guān)注
1文章
375瀏覽量
25372 -
vscode
+關(guān)注
關(guān)注
1文章
172瀏覽量
9150
原文標(biāo)題:Shell腳本檢查工具ShellCheck
文章出處:【微信號(hào):ExASIC,微信公眾號(hào):ExASIC】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
Linux Shell文本處理神器合集:15個(gè)工具+實(shí)戰(zhàn)例子,效率直接翻倍
無圖形界面模式下自定義檢查工具的應(yīng)用
【瑞薩RA6E2】1.使用串口shell點(diǎn)亮LED燈
【EASY EAI Nano-TB(RV1126B)開發(fā)板試用】命令行功能測(cè)試-shell腳本進(jìn)行IO控制-紅綠燈項(xiàng)目-實(shí)現(xiàn)開機(jī)起動(dòng)
關(guān)于系統(tǒng)鏈接腳本的介紹
【技術(shù)分享】正確編寫SysV Init腳本以實(shí)現(xiàn)Systemd兼容(上)
shell基本介紹及常用命令之shell基本介紹
怎樣確保自動(dòng)化工具在電能質(zhì)量在線監(jiān)測(cè)裝置的安全防護(hù)檢查中的準(zhǔn)確性?
請(qǐng)問如何通過 PinView 和 lua 腳本檢查和修改寄存器狀態(tài)?
harmony-utils之TypeUtil,類型檢查工具類
Shell腳本入門指南
概倫電子先進(jìn)電路檢查分析平臺(tái)工具NanoSpice CCK介紹
樹莓派新手必看!在樹莓派上編寫和運(yùn)行 Shell 腳本!
Shell腳本檢查工具ShellCheck介紹
評(píng)論