Linux运行脚本忽略警告,ShellCheck - 显示Shell脚本的警告和建议的工具
ShellCheck是一個靜態分析工具,顯示有關bash / sh shell腳本中的錯誤代碼的警告和建議。 它可以通過以下幾種方式使用:通過在網絡編輯器(Ace - 用JavaScript編寫的獨立代碼編輯器)中粘貼您的shell腳本(在https://www.shellcheck.net中,它始終與最新的git同步)提交,并且是給ShellCheck的最簡單的方法)即時反饋。
或者,您可以將其安裝在機器上,并從終端運行,并將其與文本編輯器以及構建或測試套件集成。
ShellCheck主要有三件事情:它指出并解釋了典型的初學者的語法問題,導致shell給出隱含的錯誤消息。
它指出并解釋了典型的中級語義問題,導致shell的行為奇怪和反直覺。
它還指出了可能導致高級用戶的其他工作腳本在未來情況下失敗的微妙注意事項,角落和陷阱。
在本文中,我們將展示如何以各種方式安裝和使用ShellCheck,以在Linux中的shell腳本中查找錯誤或錯誤代碼。
如何在Linux中安裝和使用ShellCheck
ShellCheck可以通過您的程序包管理器輕松地安裝在本地,如圖所示。
在Debian / Ubuntu上# apt-get install shellcheck
在RHEL / CentOS上# yum -y install epel-release
# yum install ShellCheck
在Fedora上# dnf install ShellCheck
一旦安裝了ShellCheck,我們來看看如何在前面提到的各種方法中使用ShellCheck。
使用ShellCheck從Web
轉到https://www.shellcheck.net并將腳本粘貼到提供的Ace編輯器中,您將在編輯器的底部查看輸出,如下面的屏幕截圖所示。
在以下示例中,測試shell腳本由以下幾行組成:#!/bin/bash
#declare variables
MINARGS=2
E_NOTROOT=50
E_MINARGS=100
#echo values of variables
echo $MINARGS
echo $E_NONROOT
exit 0;
ShellCheck - 在線Shell腳本分析工具
從上面的屏幕截圖,前兩個變量E_NOTROOT和E_MINARGS已被聲明但未被使用,ShellCheck報告為“暗示錯誤”:SC2034: E_NOTROOT appears unused. Verify it or export it.
SC2034: E_MINARGS appears unused. Verify it or export it.
那么其次,錯誤的名字(在語句echo $ E_NONROOT中 )用于回顯變量E_NOTROOT ,這就是為什么ShellCheck顯示錯誤:SC2153: Possible misspelling: E_NONROOT may not be assigned, but E_NOTROOT is
再次,當您查看echo命令時,變量尚未被雙引號(有助于防止全局和分詞),因此Shell檢查顯示警告:SC2086: Double quote to prevent globbing and word splitting.
從終端使用ShellCheck
您也可以從命令行運行ShellCheck,我們將使用上述相同的shell腳本,如下所示:$ shellcheck test.sh
ShellCheck - 檢查Shell腳本中的錯誤代碼
從文本編輯器使用ShellCheck
您還可以直接在各種編輯器中查看ShellCheck建議和警告,這可能是使用ShellCheck更有效的方式,一旦保存文件,它會顯示代碼中的任何錯誤。
在Vim中 ,使用ALE或Syntastic(我們將使用這個):
首先安裝Pathogen ,以便安裝合成物。 運行以下命令獲取pathogen.vim文件及其所需的目錄:# mkdir -p ~/.vim/autoload ~/.vim/bundle && curl -LSso ~/.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vim
然后將其添加到?/ .vimrc文件中:execute pathogen#infect()
一旦你已經安裝了Pathogen體,你現在可以把Synthetic放入?/ .vim / bundle中 ,如下所示:# cd ~/.vim/bundle && git clone --depth=1 https://github.com/vim-syntastic/syntastic.git
接下來,關閉vim并啟動它以重新加載它,然后鍵入以下命令::Helptags
如果一切順利,您應該將ShellCheck與Vim集成,以下屏幕截圖顯示了如何使用上述相同的腳本。
檢查Vim中的錯誤Shell腳本代碼
如果您按照上述步驟發生錯誤,那么您可能沒有正確安裝Pathogen 。 重做步驟,但確保您執行以下操作:創建了?/ .vim / autoload和?/ .vim / bundle目錄。
將執行致病菌#感染()行添加到?/ .vimrc文件。
在?/ .vim / bundle中的git克隆的內容。
使用適當的權限訪問上述所有目錄。
您還可以使用其他編輯器檢查shell腳本中的錯誤代碼,如:在Emacs中 ,使用Flycheck 。
在升華中,使用SublimeLinter。
在Atom中 ,使用Linter。
在大多數其他編輯器中,使用GCC錯誤兼容性。
注意 :使用不良代碼庫執行更多ShellChecking。
而已! 在本文中,我們展示了如何安裝和使用ShellCheck在Linux中的shell腳本中發現錯誤或錯誤的代碼。 通過下面的評論部分與我們分享您的想法。
你知道任何其他類似的工具嗎? 如果是的話,還可以在評論中分享他們的信息。
總結
以上是生活随笔為你收集整理的Linux运行脚本忽略警告,ShellCheck - 显示Shell脚本的警告和建议的工具的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux ftp 怎么验证,Linux
- 下一篇: linux用的那国语言,在linux上可