[ShellCheck]インストールからVim連携

ツール

ShellCheckは、シェルスクリプトのバグや非推奨な構文を自動検出する強力な静的解析ツールです。今回は、バックエンドエンジニアが扱う環境構築スクリプトや設定ファイルの品質を向上させるため、macOSやUbuntuでのインストールから、エディタ連携までの手順を詳細に解説します。

具体的には、Homebrewやaptを用いた導入、コマンドラインでの基本操作に加え、ALEやcoc.nvimを活用したVimでのリアルタイムチェック設定を紹介。変数のクォーティング漏れなど「実行時のトラブル」を未然に防ぐ手法を学び、雰囲気で書くシェルスクリプトを卒業して、安全で堅牢なコード管理を実現しましょう。

1. ShellCheck とは?

ShellCheck は、シェルスクリプト(bash/sh/zsh)のバグ、非推奨の構文、典型的なミスを自動で検出してくれるリンターです。

  • メリット: 文法エラーだけでなく、実行時に予期せぬ動作を招く「落とし穴」を事前に教えてくれます。
  • 用途: 環境構築スクリプトやエイリアスの検証に最適です。

2. インストール方法(OS別)

使用環境(M2/M3 Mac および Ubuntu 24.04)に合わせて解説します。

macOS の場合

Homebrew を使用するのが最も簡単です。

brew install shellcheck

Ubuntu / Debian の場合

標準リポジトリに含まれています。

sudo apt update
sudo apt install shellcheck

3. 基本的な使い方

ターミナルからスクリプトファイルを指定するだけです。

shellcheck my_script.sh

実行結果の読み方

解析結果には、以下のような形式でアドバイスが表示されます。

Line 10:

if [ $name == "admin" ]

^– SC2086: Double quote to prevent globbing and word splitting.

  • SCxxxx: エラーコードです。公式サイト(shellcheck.net)でこの番号を検索すると、詳細な理由と修正案を確認できます。
  • 色分け: 重大度(Error / Warning / Info / Style)に応じて色が変わります。
[ShellCheck]インストールからVim連携
[Ollama]バックエンドとして利用できる有力なツール
Ollamaをバックエンドとして活用できる有力なCLIツール(aichat、mods、llm、sgpt)を徹底比較。各ツールの特徴や用途別の選び方、具体的な連携方法を解説し、ターミナルでのローカルLLM活用を最大化します。

4. Vim / Neovim での活用法(開発効率向上)

ALE や coc.nvim を活用している場合、エディタ上でリアルタイムにチェックを行うのが「プロの嗜み」です。

ALE を使用している場合

提供された設定で ALE を導入していれば、ShellCheck がインストールされているだけで自動的に動作します。

  • メリット: 保存するたびに、行番号の横に警告アイコンが表示されます。

coc.nvim を使用している場合

coc-sh をインストールすることで、LSP(Language Server Protocol)経由でより高度な支援を受けられます。

:CocInstall coc-sh
[ShellCheck]インストールからVim連携
[oxker]Docker管理をTUIで快適に
Rust製のDocker管理TUIツール「oxker」の導入からZshへの統合、実践的な使い方までを解説。CPU/メモリ監視やログ確認、コンテナ操作がキーボードのみで完結し、開発効率を劇的に向上させる方法を紹介します。

5. 特定の警告を無視する方法

どうしても特定の警告を消したい場合は、スクリプト内にコメントを記述します。

# shellcheck disable=SC2086
echo $USER_NAME

6. まとめ:なぜ ShellCheck を使うべきか

  • 安全性の確保: rm -rf $DIR/ のような変数が空だった場合の事故を未然に防げます。
  • 学習ツール: 読み進めるうちに、シェルの正しいクォーティングやベストプラクティスが自然と身に付きます。

Q よくある質問 (FAQ)
Q. ShellCheckで特定の警告(エラーコード)を無視するにはどうすればよいですか?
A.
警告を無視したい行の直前に、コメント形式で `# shellcheck disable=SCxxxx`(xxxxはエラーコード)と記述することで、その警告を非表示にできます。
Q. VimでShellCheckをリアルタイムに動作させるには何が必要ですか?
A.
OSにShellCheckをインストールした上で、Vimプラグインの「ALE」を導入するか、または「coc.nvim」と「coc-sh」を組み合わせてLSP経由で連携させます。

コメント

タイトルとURLをコピーしました