概要
- Configファイルに記載したディレクトリを作成するスクリプト
スクリプト
- スクリプト名:mkdir_root.sh
- rootユーザで実行を想定
- ディレクトリの権限が色々と面倒になるので
#!/bin/bash
#----------------------------------------
# code by Taki_Naka
#
# version
# 2020/02/01 new
#
# note
#
#----------------------------------------
### global varible
# スクリプト実行時のユーザ
user_name=$(whoami)
# configファイルのパス
config_file="/data/conf/mkdir_root.conf"
### 関数処理
# スクリプト実行ユーザがrootであることを確認
function check_root_user(){
if [[ "$user_name" = "root" ]]; then
:
#echo "user is "$user_name"."
else
echo "user is "$user_name"."
echo "Please execute as root user"
exit 255
fi
}
# configファイルの存在確認
function check_config_file(){
if [[ -z "$config_file" ]]; then
echo ""$config_file" is not exsist."
exit 255
fi
}
# ディレクトリ作成を実行
function mkdir_execute(){
# 変数config_fileからコメントと空白行を除く
local mkdir_name_config=$(egrep -v '^$|^#' "$config_file")
# ループ処理:一行ずつmkdir_name_configを読み取り、ディレクトリを作成する
# ディレクトリが存在した場合:次の処理へ
# ディレクトリが存在しない場合:ディレクトリ作成、作成の確認を実施
echo "$mkdir_name_config" | while read mkdir_one_line
do
if [[ -d "$mkdir_one_line" ]]; then
echo "既に"$mkdir_one_line"は存在しています"
continue
else
mkdir "$mkdir_one_line"
if [[ ! -d "$mkdir_one_line" ]]; then
echo "warn: mkdir command is mistake."
exit 255
fi
fi
done
}
### main
check_root_user
check_config_file
mkdir_execute
Configファイル
- Configファイル名:mkdir_root.conf
- 参考で使ってください。
# -----------------------------
# config name : mkdir_root.conf
# script name : mkdir_root.sh
#
# version
# 2020/02/01 new
#
# note
# * #にてコメントアウト可能
# * フルパスでディレクトリ名を記載して下さい
# * ディレクトリの最後は必ず/で区切ること
#
# -----------------------------
# 初期構築時に作るディレクトリ
#/data/script/
#/data/conf/
#/data/logs/
# test
/data/script/test1
/data/script/test2
/data/script/test3
note
- log関数と連携させたい。
参考
bashスクリプティング研修の資料を公開します
正規表現一覧
シェルスクリプト(bash)のif文やwhile文で使う演算子について