このプロジェクトについて
ShellCheckは、bash/shスクリプト用のGNU GPLv3静的解析ツールで、スクリプトを実行せずに警告や提案を報告します。
主な目的は、初心者向けの構文エラー、直感に反するセマンティクスの問題、および後で動作しなくなる可能性のある細かい注意点を明確にすることです。
READMEには、検出可能な問題のカテゴリが広範囲に記載されています。クォートの問題(変数の未クォート、クォートされたチルダ展開、変数内のリテラルクォート、早期に展開されたトラップ)、条件文の誤り(定数テスト式、スペースの欠如、=~でのクォートされた正規表現、サポートされていない[ ]演算子)、頻繁に誤用されるコマンド(正規表現文脈でのグロブ、sudoのリダイレクト、誤用されたexec、暗黙のfind優先順位)、初心者向けの構文エラー(代入時の=の両側のスペース、カンマ区切り配列、else if)、スタイルの提案(不要なcat、バッククォートと$()の違い、リダイレクトブロック)、データと型のエラー(文字列に配列を代入、printf引数数の不一致、サブシェルでの代入)、信頼性の問題(破壊的なrm、オプションになる可能性のあるグロブ、find -execでのシェルインジェクション)、およびshebangに関連するポータビリティ警告(checkbashismsと同様)が含まれます。
使用方法には、shellcheck.netでスクリプトを貼り付け、ターミナルで`shellcheck yourscript`を実行し、エディタ統合(VimのALE/Neomake/Syntastic、EmacsのFlycheck/Flymake、SublimeのSublimeLinter、Pulsar、VSCode、その他のエディタ用GCC互換警告)、ビルドまたはテストスイートへの統合(終了コードを使用、MakefileやTravis CIの例)が含まれます。READMEでは、Travis CI、Codacy、Code Climate、Code Factor、CircleCI、GitHub Actions(Linuxのみ)、Trunk Code Quality、CodeRabbitなどのサービスで事前にインストールされていることを示し、予期せぬビルドの破綻を避けるために特定のバージョンをピン留めすることを推奨しています。
出力形式には、人間が読めるテキスト(ANSIカラーあり/なし)、JSON、CheckStyle互換XML、GCC互換警告が含まれ、プロジェクトのウィキで統合ドキュメントが提供されています。
インストールは、多くのパッケージマネージャー(Cabal、Stack、apt、pacman、emerge、yum、dnf、pkg、Homebrew、MacPorts、zypper、eopkg、Chocolatey、winget、scoop、conda-forge、Snap、Nix、Flox)、Dockerイメージ(koalaman/shellcheckとshellcheck-alpine)、Linux x86_64/armv6hf/aarch64、macOS aarch64/x86_64、Windows x86用のプリコンパイルバイナリ、およびプリコンミットフックの設定が可能です。ソースからビルドするにはHaskellとCabalが必要で、コンパイルには約2GBのRAMが推奨され、テストは`cabal test`で実行されます。
環境変数、コマンドライン、ファイル内での個別またはグローバルな無視が可能です。GitHubのプルリクエストとしての貢献はGPLv3の下で受け入れられ、各警告コードの詳細な説明はウィキに記載されており、ShellCheckはフォーマットを強制しないためshfmtが推奨されます。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.