シェルスクリプトのスタイル、ベストプラクティス、命名規則などをテストするシェル(具体的にはbashまたはksh)チェッカーはありますか? (Lint forCやPerl :: Critical for Perlのようなもの。)
Kshを使用すると、ksh -n script.ksh
を実行して構文チェックを実行できることは知っていますが、構文チェックだけでなく、実際のコードを解析/分析するものを望んでいましたか?
運が悪かったのかもしれませんが、聞いても大丈夫だと思います。
DebianおよびUbuntuプロジェクトは、スクリプト checkbashisms
を使用します。このスクリプトは、誰かが/bin/sh
がbash
であることに依存していることを示す可能性のある特定のパターンを探します。
それを超えて、ほとんどのシェルには、エラーを解析して報告するための-n
オプションがあります。スクリプトをいくつかの異なるシェルと照合して、移植可能な構文のみを使用していることを確認できます。
for Shell in zsh ksh bash dash sh
do
echo "Testing ${Shell}"
${Shell} -n my_script.sh
done
edit to add:この回答を書いたので、 shellcheck が書かれました、提案されたように 後の回答で 。これは、以前の提案よりもはるかに徹底的なシェルスクリプトのリンティングを行います。
shellcheckを見つけました :引用やその他の見落としがちな一般的なエラーをテストします(「機能するため」)。
ブライアンの答えで提示されたシェルで利用可能なチェックバシムと他の基本的なリンティングオプションをラップするために shlint と書きました。
Rubygems経由でインストール可能です(gem install shlint
)ギャグのようなものですが、shlintコマンド自体を解釈するには、Perl(checkbashims用)とPOSIX準拠のシェルのみが必要です。 OSXとUbuntuではそのままで動作するはずです。