構成管理用shell
やりたいこと
・シェルを実行することでいつも同じディレクトリが作成される
・ディレクトリが既に存在する場合は作成しない
・ディレクトリを作成する前に確認を行う
背景
昔はローカル/STG/本番3環境だったので手動でコマンド実行していた。
しかし、今は環境が倍以上に増えたのでシェルで再現性あるディレクトリ作成を行いたい。
将来はこのシェルを構成管理ツールから実行することで楽をしたい。
この処理の前にchmodを入れることでディレクトリのパーミッションを変更可能
>echo "ディレクトリ $dir を作成しました。"
#!/bin/bash
# 作成したいディレクトリ名をリストとして定義
directories=("dir1" "dir2" "dir3")
# 作成済みと未作成のディレクトリを格納する配列
existing_dirs=()
to_create_dirs=()
# ディレクトリの状態をチェック
for dir in "${directories[@]}"; do
if [ -d "$dir" ]; then
existing_dirs+=("$dir")
else
to_create_dirs+=("$dir")
fi
done
# 結果を表示
echo "既に存在するディレクトリ:"
for dir in "${existing_dirs[@]}"; do
echo " - $dir"
done
echo "作成されていないディレクトリ:"
for dir in "${to_create_dirs[@]}"; do
echo " - $dir"
done
# y/n の入力を受け付ける
echo -n "作成されていないディレクトリを作成しますか? (y/n): "
read -r answer
# y の場合はディレクトリを作成
if [[ "$answer" == "y" || "$answer" == "Y" ]]; then
for dir in "${to_create_dirs[@]}"; do
mkdir "$dir"
echo "ディレクトリ $dir を作成しました。"
done
else
echo "処理を終了します。"
exit 0
fi