あなたは新進のプログラマーであり、単純なシェルスクリプトを作成しただけです。バグがないか確認したかったのですが、方法がわかりませんか?心配ない!これで、 ShellCheck を使用して、シェルスクリプトのバグを簡単に見つけることができます。 。
ShellCheckは、シェルスクリプトの静的分析ツールです。 ShellCheckはシェルスクリプトを分析し、シェルスクリプトにエラーがあるかどうかを即座に表示します。 Haskell言語で書かれています GPLv3の下で自由に配布されます。
ShellCheckはスクリプトを分析し、次のことを行います。
- 引用が正しくないかどうかを確認します
- 不正なテストステートメントを確認します
- 誤ったコマンドを認識します
- 構文エラーを認識します
- スクリプトのスタイルを改善することをお勧めします
- タイプミスを認識します
- スクリプトの堅牢性を向上させます
- そして他のいくつかの問題を確認してください。
スクリプトのバグを修正するために専門家の助けは必要ありません。 ShellCheckを開き、スクリプトを貼り付けてブームを起こします。 ShellCheckは、オンラインまたはオフラインで使用できます。この簡単なチュートリアルでは、両方を紹介します!
Web上のShellCheck
ShellCheckのWebサイトにアクセスすると、オンラインでスクリプトを確認できます。
Webブラウザーを開き、次のリンクに移動します。

シェルスクリプトを貼り付けて、すぐにフィードバックできるようにします。
出力例:

注: この例で使用されているスクリプトは作成していません。 ShellCheckをテストするためにオンラインで見つけました。
または、Linuxボックスにインストールして、オフラインでいつでもスクリプトをテストできます。
LinuxにShellCheckをインストールする
ShellCheckは、ほとんどのLinuxオペレーティングシステム用にパッケージ化されています。以下に示すように、ディストリビューションのパッケージマネージャーを使用して簡単にインストールできます。
Arch Linuxとその派生物について:
$ sudo pacman -S shellcheck
Debian、Ubuntu、Linux Mintでは、次のコマンドを実行してインストールします。
$ sudo apt-get install shellcheck
RHELでは、CentOSはEPELリポジトリを有効にします:
$ sudo yum -y install epel-release
そして、shellcheckをインストールします:
$ sudo yum install ShellCheck
Fedoraシステムの場合:
$ sudo dnf install ShellCheck
openSUSE(Tumbleweedエディション)で、次のコマンドを実行します。
$ sudo zypper in ShellCheck
その他のディストリビューションについては、公式インストールページを確認してください。 。
LinuxでShellCheckを使用してシェルスクリプトのバグを見つける
インストールしたら、ターミナルを開き、次のコマンドを実行してスクリプトをテストします。
shellcheck <path_of_your_script>
例:
$ shellcheck myscript.sh
出力例:
In myscript.sh line 1: # This script displays the date, time, username and ^-- SC2148: Tips depend on target shell and yours is unknown. Add a shebang. In myscript.sh line 6: echo "Your username is: `whoami` \\n" ^-- SC2006: Use $(..) instead of legacy `..`. ^-- SC2028: echo won't expand escape sequences. Consider printf.

上記の出力にあるように、ShellCheckは1行目と6行目に提案を示しています。
ShellCheckはスクリプトのエラーを自動的に修正しないことに注意してください。代わりに、シェルスクリプトに対する警告と提案が表示されます。
ShellCheckユーティリティは、シェルスクリプトを学びたい人に役立つ可能性があります。スクリプトを作成し、ShellCheckでコードをコピーして貼り付け、間違いを見つけてください。とても簡単です!