Loading…

概要 オンラインシェルスクリプトフォーマッター

シェルスクリプトを貼り付け、「フォーマット」を押すだけで、`shfmt`搭載のクリーンで一貫した出力を取得。DevOpsパイプライン、ドットファイル、コンテナエントリーポイント、本番対応のデプロイメントスクリプトに理想的です。インストール不要、ログイン不要 – コミット可能な読みやすいシェルコードがすぐに利用できます。

このシェルスクリプトフォーマッターを使用する理由

  • POSIX sh、Bash、mkshおよび関連シェルの即時フォーマット
  • インデント、スペース、case/esacブロックのためのshfmtスタイルルール
  • インデントサイズ、タブ対スペース、リダイレクトスペースなどのオプションサポートを設計
  • 生のコードを貼り付けるか、`.sh`、`.bash`、`.ksh`、`.mksh`、`.bats`ファイルをアップロード
  • CI/CDパイプライン、Dockerエントリーポイント、ドットファイルに最適な相棒
  • shfmtスタイルのロジックを実行する安全なバックエンドでフォーマット - ローカルインストール不要
  • クリーンアップされたスクリプトをワンクリックでコピーまたはダウンロード

🛠️ オンラインでシェルスクリプトをフォーマットする方法 for shell-script-formatter

1

1. スクリプトを貼り付けるかアップロード

📥 シェルコードをエディターに貼り付けるか、`.sh`、`.bash`、`.ksh`、`.mksh`、`.bats`ファイルをドラッグ&ドロップしてください。シンタックスハイライトにより、構造とコマンドを簡単に確認できます。

2

2. (オプション)詳細設定を調整

⚙️ プロジェクトでカスタムスタイルルールを使用している場合は、UIで利用可能な場合にインデントやその他の詳細オプションを調整してください。デフォルトプロファイルは既に一般的なshfmtの慣習に合わせています。

3

3. スクリプトをフォーマット

✨ **フォーマット**をクリックして、スクリプトを安全なフォーマットAPIに送信します。動作を保ちながら、インデント、スペース、特定の構文を書き換えます。

4

4. 結果をコピーまたはダウンロード

📤 フォーマットされたスクリプトをエディターにコピーするか、git、CI、または本番デプロイ用に準備された`.sh`ファイルとしてダウンロードします。

技術仕様

サポート形式と拡張子

実世界のシステムで遭遇する一般的なBourneスタイルシェル方言をサポート:

形式 / 方言一般的な拡張子説明
POSIX sh.sh/bin/sh互換のポータブルシェルスクリプト
Bash.sh、.bashGNU Bashスクリプトとインタラクティブヘルパー
Korn shell (ksh).kshレガシー環境でのKornシェルスクリプト
mksh.mkshMirBSD Korn シェルスクリプト
Bats テスト.batsBatsを使用したシェルベースのテストスイート

フォーマット動作(shfmtスタイル)

バックエンドフォーマッタは、一貫したシェルレイアウトのためにshfmtスタイルのルールに従います。

側面動作利点
インデント`if`、`for`、`while`、`case`、関数、サブシェルのインデントを正規化制御フローとネストを視覚的に解析しやすくなります。
スペース代入の`=`の周囲や適切な場所の二項演算子の周囲にスペースを追加視覚的なノイズと誤った解析ミスを減らします。
リダイレクトshfmtスタイルの慣例に従い、`>`、`>>`、`<`の周囲のスペースをサポートファイルリダイレクトの読みやすさを向上させます。
ケースブロック`case`、パターンブランチ、`esac`を一貫して揃える深くネストされたまたは圧縮されたcase文を防ぎます。
冪等出力フォーマッタを再度実行しても同じ結果が得られるpre-commitフックやCIへの安全な統合を可能にします。

入力制限とサイズ

重要なスクリプトでも高速かつ予測可能な動作を目指しています。

パラメータ制限 / 動作備考
最大入力サイズ(テキスト)約 2 MBこれより大きいスクリプトはshfmtでローカルでフォーマットすることをお勧めします。
最大ファイルサイズ(アップロード)約 5 MBほとんどのデプロイメントスクリプトやユーティリティコレクションに最適です。
エンコーディングUTF-8推奨ISO-8859-1などのレガシーエンコーディングはフォーマット前に変換してください。

実行モデル

フォーマッタは、shfmtスタイルのロジックを使用したセキュアなバックエンド経由で実行されます。

側面動作備考
転送`/api/shell-script-formatter` エンドポイントへのHTTPS呼び出しスクリプトのフォーマット中に盗聴を防止します。
タイムアウトリクエストあたり約25秒非常に大きな入力や異常な入力による暴走ジョブを回避します。
意味論空白とレイアウトのみスクリプトのロジックは保持され、フォーマットのみが変更されます。

CLI同等機能(shfmt)

ターミナルやCIパイプラインで同じ動作を望みますか? `shfmt` を直接使用してください:

Linux / 🍎 macOS / 🪟 Windows(WSLまたはGo経由)

Goを使用してshfmtをインストール

go install mvdan.cc/sh/v3/cmd/shfmt@latest

`shfmt` バイナリをGoのbinディレクトリ(例:`~/go/bin`)にインストールします。

2スペースインデントでシェルファイルをフォーマット

shfmt -i 2 -w script.sh

`script.sh` を一貫性のあるフォーマットで上書きします。

フォーマットして標準出力に表示

shfmt -i 4 script.sh

4スペースのインデントを使用し、ファイルを変更せずに標準出力に表示します。

CIでのフォーマットチェック(変更なし)

shfmt -d scripts/

再フォーマットが必要なファイルの差分を表示し、変更が必要な場合は非ゼロで終了します。

CIパイプラインやpre-commitフックに `shfmt -d` ステップを追加して、すべてのスクリプトが自動的にクリーンで一貫性を保つようにしましょう。

シェルフォーマットの実用的なユースケース

DevOps & CI/CDパイプライン

ミッションクリティカルなスクリプトを読みやすく、レビュー可能で、本番環境安全に保ちます。

  • `main` にマージする前に、デプロイとロールバックスクリプトをクリーンアップ。
  • `.git/hooks`、`scripts/`、CIヘルパーのフックを正規化。
  • Dockerエントリーポイントとコンテナブートストラップスクリプトをフォーマット。
shfmt -i 2 -w ./scripts/deploy.sh
shfmt -i 2 -w ./scripts/*.sh

チームコラボレーション & オープンソース

スタイルの議論を避け、レビューではロジックに集中できます。

  • すべてのコントリビューターのシェルスクリプトに一貫したスタイルを適用します。
  • ドットファイルとヘルパーを整理してオンボーディングを容易にします。
  • インデントとスペースを標準化してノイズの多い差分を減らします。
shfmt -w hooks/*.sh
shfmt -i 2 -ci -bn -w .

シェルスクリプトの学習と教育

学生やジュニア開発者にベストプラクティスを示します。

  • スライドやドキュメントに掲載する前に例を整理します。
  • 学生の提出物を自動フォーマットして、フィードバックを意味論に集中させます。
  • レイアウトが可読性とバグ発見に与える影響を実演します。

❓ Frequently Asked Questions

🔍shfmtとは何ですか?

`shfmt`はmvdanによって作成されたシェルスクリプト用のオープンソースコマンドラインフォーマッタです。POSIX sh、Bashおよび類似の方言に対応し、シェルコードを解析して一貫したインデント、スペース、構造で書き直します。

⚙️インデントのスペース数を選択できますか?

はい。CLI使用時には`-i`フラグでインデントを制御できます(例:`-i 2`または`-i 4`)。このオンラインツールも同等のインデント設定をフォーマットバックエンド経由でサポートするように設計されています。

🚫このWebツールはファイルを上書きしますか?

いいえ。フォーマッタは整理されたスクリプトをブラウザで返します。エディタにコピーするか新しいファイルとしてダウンロードするかはあなたが決定します。オリジナルファイルは自分で上書きしない限り変更されません。

💬Bash固有の構文を理解しますか?

はい。基盤となるshfmtスタイルエンジンは、POSIX shに加えて一般的なBash構文、さらにmkshやkshなどの追加シェルをサポートしています。

🔒機密性の高いスクリプトをここでフォーマットしても安全ですか?

一般的なスクリプトについては、このツールは便利で安全です。高度な機密データ(埋め込みシークレット、内部インフラ詳細など)を含むスクリプトの場合は、shfmtをローカルまたは自身のCI環境内で実行する方が通常は安全です。

Pro Tips

Best Practice

コミット前に毎回shfmtを実行して、Gitの履歴を空白ではなく実際の変更に集中させましょう。

Best Practice

`shfmt -d`をCIと組み合わせて、スクリプトが適切にフォーマットされていない場合のマージをブロックします。

Best Practice

このフォーマッタをShellCheckと組み合わせて、シェルスクリプトのスタイルとロジックの問題の両方を捕捉しましょう。

Best Practice

すべてのスクリプトでシバン(`#!/usr/bin/env bash`)を一貫させて、微妙な移植性の問題を回避しましょう。

Additional Resources

Other Tools