シェルスクリプトフォーマッター (Bash / sh)
ガイド
シェルスクリプトフォーマッタ
Bash、sh、zsh スクリプトを即座にフォーマットして整形します。乱雑または一貫性のないインデントのシェルコードを貼り付けると、if/then/fi、for/do/done、while ループ、case 文、および関数本体のすべてのブロック構造に対して、適切に構造化されたクリーンな出力が得られます。
使い方
シェル スクリプトをインプットエリアに貼り付けます。フォーマッタは入力中にリアルタイムで処理します。プロジェクトの規約に合わせて、シェル方言、インデント スタイル、およびフォーマット オプションを調整します。フォーマットされた結果をアウトプット パネルからコピーします。
特徴
- シェル方言サポート – Bash、sh/POSIX、または zsh 用に記述されたスクリプトを、方言に適した処理でフォーマットします。
- 設定可能なインデント – チームのスタイル ガイドに合わせて、インデントに 2 スペース、4 スペース、またはタブを選択します。
- ブロック構造の処理 – ネストされた if/then/elif/else/fi、for/do/done、while/do/done、case/esac、および関数本体を、あらゆるネスト深度で正しくインデントします。
- 二項演算子の配置 – 継続演算子のようなものを選択します
&&,||、 そして|現在の行の末尾または次の行の先頭に表示されます。 - 空白のクリーニング – 末尾の空白をトリムし、連続する空行を正規化し、ファイルの末尾に改行があることを保証します。
- リアルタイムフォーマット – 入力中またはオプションを変更すると、出力が即座に更新されます。
このツールを使用するタイミング
フォーマットの一貫性がない継承スクリプトのクリーンアップ、コードレビューのためのシェルコードの準備、またはプロジェクト全体でのインデントの標準化を行う際に、このツールを使用してください。特に、複数の人が異なるインデント設定で編集したスクリプトのフォーマット、またはワンライナーを読みやすいマルチライン スクリプトに再フォーマットする場合に役立ちます。
よくある質問
-
Bash と sh (POSIX シェル) の違いは何ですか?
sh は POSIX 標準シェル仕様を指します — どの Unix システムでも確実に機能する最小限の機能セットです。Bash (Bourne Again Shell) は sh のスーパーセットであり、配列、文字列操作、プロセス置換、およびその他の多くの機能を追加します。sh 用に記述されたスクリプトはシステム間でよりポータブルですが、Bash スクリプトはより豊富な構文を使用できますが、Bash がインストールされている必要があります。
-
シェルスクリプトでは、インデントにタブまたはスペースを使用すべきですか?
普遍的な標準はありません。Google のシェル スタイル ガイドは 2 スペースを推奨しています。多くのオープンソース プロジェクトでは 4 スペースを使用しています。タブストリッピング演算子 <<- を使用する場合、ヒアドキュメント内ではタブが必要です。最も重要なことは、プロジェクト内での一貫性です — 1 つのスタイルを選択し、すべての場所でそれを強制してください。
-
シェル スクリプトでインデントが重要なのはなぜですか?
Python とは異なり、シェル スクリプトは構文のためにインデントを使用しません — インタプリタはそれを完全に無視します。ただし、適切なインデントは人間が読みやすくするために不可欠です。適切にインデントされたスクリプトは、ネストされた条件分岐、ループ、および case 文の理解、デバッグ、保守を劇的に容易にします。不適切にインデントされたスクリプトは、開発者が制御フローを誤解するため、バグの一般的な原因となります。
-
shfmt とは何ですか?また、手動フォーマットと比較してどうですか?
shfmt は、Daniel Martí によるオープンソースのコマンドラインツールで、適切なシェルパーサーを使用してシェルスクリプトを解析およびフォーマットします。単純な正規表現ベースのフォーマッタが見落とす可能性のあるヒアドキュメント、文字列引用、および複雑なリダイレクトなどのエッジケースを処理します。本番環境での使用では、CI パイプラインで shfmt を実行すると、コードベース全体で一貫したフォーマットが保証されます。
恵 スコアボードが到着しました!
スコアボード ゲームを追跡する楽しい方法です。すべてのデータはブラウザに保存されます。さらに多くの機能がまもなく登場します!
