Skip to content

シェルスクリプトをClaudeに書かせる

シェルスクリプトは便利な一方、ちょっとしたミスがシステム全体に影響することもあります。Claude Codeを使えば、安全で堅牢なスクリプトを素早く生成できます。具体的な使い方を見ていきましょう。

プロンプトで「条件」を明示する

Section titled “プロンプトで「条件」を明示する”

Claude Codeにシェルスクリプトを書かせるコツは、環境・目的・制約をセットで伝えることです。たとえば次のように入力してみましょう。

以下の条件でbashスクリプトを書いてください。
- Ubuntu 22.04で動作すること
- /var/www/html 以下の古いログファイル(30日以上)を削除する
- 削除前に確認メッセージを表示し、ユーザーがyを入力した場合だけ実行する
- エラー時はexit 1で終了し、ログをsyslogに記録する

このように条件を箇条書きで渡すと、Claude Codeはset -euo pipefailなどのベストプラクティスを自動的に盛り込んだスクリプトを生成してくれます。「なんとなく動くスクリプト」ではなく、本番でも使えるコードが出てきます。

プロンプト: AIへの指示文。Claude Codeへの指示の質がそのまま出力の質に影響する。

デプロイスクリプトはロールバックまで依頼する

Section titled “デプロイスクリプトはロールバックまで依頼する”

デプロイ自動化では、失敗時のロールバック処理が欠かせません。Claude Codeへの依頼時に「失敗したら元に戻せるように」と一言添えるだけで、trapコマンドを活用した安全な構造を生成してくれます。

#!/usr/bin/env bash
set -euo pipefail
BACKUP_DIR="/tmp/deploy_backup_$(date +%Y%m%d%H%M%S)"
DEPLOY_DIR="/var/www/app"
# バックアップ
cp -r "$DEPLOY_DIR" "$BACKUP_DIR"
# ロールバック用トラップ
trap 'echo "デプロイ失敗。ロールバックします..."; cp -r "$BACKUP_DIR" "$DEPLOY_DIR"' ERR
# デプロイ処理
rsync -az --delete ./dist/ "$DEPLOY_DIR/"
systemctl restart myapp
echo "デプロイ成功"

このようなスクリプトをゼロから書くのは手間ですが、Claude Codeなら数秒で叩き台が出てきます。

デプロイ: 開発したコードを本番サーバーに公開・適用すること。

Claude Codeに「dry-runモードも追加して」と追加依頼すると、DRY_RUNフラグを使ったモードを組み込んでくれます。

Terminal window
DRY_RUN=${DRY_RUN:-false}
run_cmd() {
if [ "$DRY_RUN" = "true" ]; then
echo "[DRY RUN] $*"
else
"$@"
fi
}
run_cmd rsync -az --delete ./dist/ "$DEPLOY_DIR/"

こうしておけばDRY_RUN=true bash deploy.shで実際のファイル操作をせずに動作確認できます。Claude Codeはスクリプト生成だけでなく、こうした安全策の追加にも気軽に使えます。まずは小さな自動化タスクから試してみてください。