GNU/Linux >> Linux の 問題 >  >> Linux

ShellCheck –シェルスクリプトのバグを見つけるための無料のユーティリティ

あなたは新進のプログラマーであり、単純なシェルスクリプトを作成しただけです。バグがないか確認したかったのですが、方法がわかりませんか?心配ない!これで、 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でコードをコピーして貼り付け、間違いを見つけてください。とても簡単です!


Linux
  1. シェルスクリプトでSetuidを許可しますか?

  2. シェルスクリプトの連想配列?

  3. シェルスクリプトの正しいロック?

  1. 文字列内のパターンを見つけるためのシェルテスト?

  2. Webサイトからシェルスクリプトを実行しますか?

  3. シェルスクリプトでパスワードを隠す?

  1. シェルスクリプトで入力を使用する方法

  2. シェルスクリプトで長いコマンドを分割しますか?

  3. シェル スクリプトのコマンド ライン パラメータ