shell について
AI エージェントと LLM 向けのシェルスクリプトガイドです。影響度順の 49 ルールと例を通じて、安全性、移植性、エラー処理、性能を扱います。
主な機能
- 019 つのスクリプトカテゴリ
- 02優先度付きの 49 ルール
- 03誤りと正しい実装の例
- 04安全性と移植性の指針
- 05エラー処理と性能の助言
活用シーン
- 01Bash または POSIX シェルの作成
- 02スクリプトのセキュリティ確認
- 03スクリプトの無言の失敗の調査
- 04異なる環境へのスクリプト移植
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ pproenca/ dot-skills --skill shellインストール後、Claude Code で/shellを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
AGENTS.mdmetadata.jsonREADME.mdassets/templates/_template.mdreferences/_sections.mderr-check-commands.mderr-debug-tracing.mderr-exit-codes.mderr-pipefail.mderr-shellcheck.mderr-stderr-messages.mderr-strict-mode.mderr-trap-cleanup.mdfunc-avoid-aliases.mdfunc-documentation.mdfunc-main-pattern.mdfunc-return-values.mdfunc-single-purpose.mdperf-avoid-subshells.mdperf-batch-operations.mdperf-builtins-over-external.mdperf-parameter-expansion.mdperf-process-substitution.mdperf-read-files.mdport-avoid-bashisms.mdport-export-syntax.mdport-printf-over-echo.mdport-shebang-selection.mdport-test-portability.mdquote-always-quote-variables.md詳細
シェルスクリプトのベストプラクティス(コミュニティ)
AI エージェントや LLM 向けに作成された、シェルスクリプトの包括的なベストプラクティスガイドです。9 つのカテゴリにわたる 49 のルールが含まれており、重大(安全性、移植性)から段階的(スタイル)まで、影響度に応じて優先順位が付けられています。各ルールには、詳細な説明、誤った実装と正しい実装を比較した実例、具体的な影響指標が含まれています。
適用する場面
次の場合に、これらのガイドラインを参照してください。
- 新しい bash または POSIX シェルスクリプトを作成するとき
- シェルスクリプトのセキュリティ上の脆弱性をレビューするとき
- スクリプトが予期せず失敗したり、想定外の動作をしたりする原因を調査するとき
- Linux、macOS、コンテナ間でスクリプトを移植するとき
- シェルスクリプトのパフォーマンスを最適化するとき
- シェルスクリプトを使った CI/CD パイプラインを設定するとき
優先度別のルールカテゴリ
| 優先度 | カテゴリ | 影響度 | プレフィックス | ルール数 |
|---|---|---|---|---|
| 1 | 安全性とセキュリティ | 重大 | safety- | 6 |
| 2 | 移植性 | 重大 | port- | 5 |
| 3 | エラー処理 | 高 | err- | 8 |
| 4 | 変数とデータ | 高 | var- | 5 |
| 5 | クォートと展開 | 中〜高 | quote- | 6 |
| 6 | 関数と構造 | 中 | func- | 5 |
| 7 | テストと条件分岐 | 中 | test- | 5 |
| 8 | パフォーマンス | 低〜中 | perf- | 6 |
| 9 | スタイルと書式 | 低 | style- | 3 |
クイックリファレンス
1. 安全性とセキュリティ(重大)
safety-command-injection- ユーザー入力によるコマンドインジェクションを防ぐsafety-eval-avoidance- 動的なコマンドに eval を使用しないsafety-absolute-paths- 外部コマンドには絶対パスを使用するsafety-temp-files- 安全な一時ファイルを作成するsafety-suid-forbidden- シェルスクリプトで SUID/SGID を決して使用しないsafety-argument-injection- ダブルダッシュを使って引数インジェクションを防ぐ
2. 移植性(重大)
port-shebang-selection- 移植性の要件に基づいて shebang を選択するport-avoid-bashisms- POSIX スクリプトでは bash 固有の構文を避けるport-printf-over-echo- 移植性のため、echo の代わりに printf を使用するport-export-syntax- 移植可能な export 構文を使用するport-test-portability- 移植可能な test 構文を使用する
3. エラー処理(高)
err-strict-mode- エラーを検出するために厳格モードを使用するerr-exit-codes- 意味のある終了コードを使用するerr-trap-cleanup- 終了時のクリーンアップに trap を使用するerr-stderr-messages- エラーメッセージを stderr に出力するerr-pipefail- パイプラインのエラーを検出するために pipefail を使用するerr-check-commands- コマンドの成功を明示的に確認するerr-shellcheck- 静的解析に ShellCheck を使用するerr-debug-tracing- set -x と PS4 でデバッグトレースを使用する
4. 変数とデータ(高)
var-use-arrays- 文字列ではなく配列をリストに使用するvar-local-scope- 関数内の変数には local を使用するvar-naming-conventions- 変数の命名規則に従うvar-readonly-constants- 定数には readonly を使用するvar-default-values- デフォルト値にはパラメーター展開を使用する
5. 引用と展開(中〜高)
quote-always-quote-variables- 変数展開は常に引用符で囲みますquote-dollar-at- 引数の受け渡しには "$@" を使用しますquote-command-substitution- コマンド置換を引用符で囲みますquote-brace-expansion- 変数を明確にするために波括弧を使用しますquote-here-documents- 複数行文字列にはヒアドキュメントを使用しますquote-glob-safety- グロブ展開を明示的に制御します
6. 関数と構造(中)
func-main-pattern- main() 関数のパターンを使用しますfunc-single-purpose- 単一の目的を持つ関数を記述しますfunc-return-values- 戻り値を正しく使用しますfunc-documentation- ヘッダーコメントで関数を説明しますfunc-avoid-aliases- エイリアスより関数を優先します
7. テストと条件分岐(中)
test-double-brackets- bash のテストには [[ ]] を使用しますtest-arithmetic- 算術比較には (( )) を使用しますtest-explicit-empty- 空文字列と空でない文字列を明示的にテストしますtest-file-operators- 適切なファイルテスト演算子を使用しますtest-case-patterns- パターンマッチングには case を使用します
8. パフォーマンス(低〜中)
perf-builtins-over-external- 外部コマンドより組み込みコマンドを使用しますperf-avoid-subshells- 不要なサブシェルを避けますperf-process-substitution- 一時ファイルにはプロセス置換を使用しますperf-read-files- ファイルを効率的に読み込みますperf-parameter-expansion- 文字列操作にはパラメーター展開を使用しますperf-batch-operations- ループの代わりに操作をまとめて実行します
9. スタイルと書式(低)
style-indentation- 一貫したインデントを使用しますstyle-file-structure- 一貫したファイル構造に従いますstyle-comments- 役立つコメントを記述します
使い方
詳しい説明とコード例については、各リファレンスファイルをお読みください。
- セクションの定義 - カテゴリー構成と影響度
- ルールのテンプレート - 新しいルールを追加するためのテンプレート
リファレンスファイル
| ファイル | 説明 |
|---|---|
| AGENTS.md | すべてのルールをまとめた完全なガイド |
| references/_sections.md | カテゴリーの定義と順序 |
| assets/templates/_template.md | 新しいルール用のテンプレート |
| metadata.json | バージョンとリファレンス情報 |
主な情報源
コメント
Markdown 対応