0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

構成管理用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
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?