Bashを使用してスクリプトを作成する!(基本の枠組み)

Bashを使用して基本の枠組みとなるスクリプトを作成します。

1行目を記述する!

スクリプトの1行目は、スクリプトを実行するプログラムを絶対パスで記述します。

#!/bin/bash

コメントを記述する!

スクリプトのコメントを示す記号は、「#」です。「#」以降がコメントと判断されます。ただし、1行名の「#!」から始まる行は、コメントではありません。

#!/bin/bash
#
# Usage   : sample_bash_01.sh
# Version : 1.0
#

環境変数の初期化を行う!

使用する環境変数や定数は、最初に初期化を行いましょう。

#!/bin/bash
#
# Usage   : sample_bash_01.sh
# Version : 1.0
#
SHELL_NAME=`basename $0`
STA_MSG=Start!
END_MSG=End!

処理を記述する!

環境変数の初期化が終了したら、主処理を記述します。コマンドを記述する場合は、なるべく絶対パスで記述するようにします。

#!/bin/bash
#
# Usage   : sample_bash_01.sh
# Version : 1.0
#
SHELL_NAME=`basename $0`
STA_MSG=Start!
END_MSG=End!
# START
/usr/bin/logger -ip local0.crit -t ${SHELL_NAME} ${STA_MSG}

# Main
echo "${SHELL_NAME} : Main"

# END
/usr/bin/logger -ip local0.crit -t ${SHELL_NAME} ${END_MSG}

処理を終了する!

処理は、「exit」文で終了します。一般的に正常終了は「0」、正常終了以外は、「0」以外の戻り値で終了するように記述します。

#!/bin/bash
#
# Usage   : sample_bash_01.sh
# Version : 1.0
#
SHELL_NAME=`basename $0`
STA_MSG=Start!
END_MSG=End!

# START
/usr/bin/logger -ip local0.crit -t ${SHELL_NAME} ${STA_MSG}

# Main
echo "${SHELL_NAME} : Main"

# END
/usr/bin/logger -ip local0.crit -t ${SHELL_NAME} ${END_MSG}
  
exit 0

シェルに実行権を付与する!

シェルに実行権を付与します。

$ chmod +x test.sh
$ ls -l sample_bash_01.sh 
-rwxr-xr-x. 1 usradmin usradmin 289 Jun 22 07:34 sample_bash_01.sh

シェルを実行してみる!

シェルを実行して、戻り値、ログ出力を確認します。

$ ./sample_bash_01.sh 
sample_bash_01.sh : Main
$ echo $?
0
$ journalctl -e
...
Jun 22 07:39:12 vmsrhe01.loc.lab4ict.com sample_bash_01.sh[1607]: Start!
Jun 22 07:39:12 vmsrhe01.loc.lab4ict.com sample_bash_01.sh[1608]: End!

おわりに

Bashのスクリプトの基本の枠組みを作成してみました。

関連記事

関連書籍(Amazon)