3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

shell script ディレクトリ作成スクリプト

Posted at

概要

  • 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文で使う演算子について

3
1
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
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?