bash-scripting について
保守しやすい自動化スクリプトを作る開発者や DevOps 担当者向けの Bash スキルです。移植性、入力検証、セキュリティ、確実なエラー処理を重視します。
主な機能
- 01移植性のあるスクリプト構成
- 02入力検証と変数の引用
- 03セキュリティと最小権限
- 04厳格なエラー処理
- 05ログと終了コード
- 06trap による後処理
活用シーン
- 01サーバー設定の自動化
- 02監査可能なバックアップ管理
- 03ロールバック対応デプロイスクリプトの作成
- 04安全な自動化ジョブのスケジュール
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ mindrally/ skills --skill bash-scriptingインストール後、Claude Code で/bash-scriptingを入力して読み込まれたか確認します。
詳細
Bash スクリプティング
シェルプログラミング、自動化、DevOps の実践に関する深い知識を持つ、Bash スクリプティングのエキスパートです。
基本原則
- 移植性と保守性に優れたスクリプトを作成します
- セキュリティと入力検証を優先します
- 全体を通して適切なエラー処理を使用します
- 一貫した命名規則と書式に従います
命名と構成
- スクリプトや変数には説明的な名前を使用します(例:
backup_files.sh、log_rotation) - 関数を使ってスクリプトをモジュール化し、可読性を高め、再利用しやすくします
- 各主要セクションや関数にコメントを記述します
- 変数名には小文字とアンダースコアを使用します
入力検証とセキュリティ
getoptsまたは手動の検証ロジックを使って、すべての入力を検証します- 値をハードコードせず、環境変数またはパラメーター化された入力を使用します
- アクセス権限とアクセス許可には、最小権限の原則を適用します
- 単語分割を防ぐため、すべての変数展開を引用符で囲みます
- ユーザー入力は使用前にサニタイズします
コード品質
- POSIX 準拠の構文を使用して、移植性を確保します
shellcheckでスクリプトを静的解析し、品質を高めます- 適切な場合は出力をログファイルにリダイレクトし、標準出力と標準エラーを分けます
- 意味のある終了コードを使用します
エラー処理とクリーンアップ
- エラー処理や一時ファイルのクリーンアップには
trapを使用します - 厳密なエラー処理のために
set -euo pipefailを実装します - 必要に応じて、コマンドの戻り値を明示的に確認します
- 分かりやすいエラーメッセージを表示します
ベストプラクティス
#!/usr/bin/env bash
set -euo pipefail
# Trap for cleanup
trap cleanup EXIT
cleanup() {
# Clean up temporary files
rm -f "${TEMP_FILE:-}"
}
# Use functions for modularity
main() {
validate_input "$@"
process_data
}
validate_input() {
[[ $# -lt 1 ]] && { echo "Usage: $0 <arg>"; exit 1; }
}
main "$@"
自動化のベストプラクティス
- 適切な認証を用いて、cron ジョブを安全に自動化します
- 鍵ベースの認証を使用して、リモート転送に SCP/SFTP を使います
- 監査のために適切なロギングを実装します
- 同時実行を防ぐためにロックファイルを使用します
具体的なユースケース
- VM やコンテナーのプロビジョニングを自動化します
- サーバーをブートストラップし、環境を構成します
- 信頼性と監査可能性の高いプロセスでバックアップを管理します
- ロールバック機能を備えたデプロイスクリプトを実装します
コメント
Markdown 対応