シェルスクリプトでの定数の使い方を説明したいと思います。シェルスクリプトを何ファイルも作るプロジェクトだと定数を外部ファイルに定義したいことあると思うので、外部ファイルで定数を使う方法についても説明したいと思います。
シェルスクリプトで定数って何に使うのって人もいると思いますが、DBの接続情報やログファイルの出力先は定数で定義して、色々なシェルスクリプトで使うことが多いと思います。
でも具体的にこれってどうやるんだっけてなることも多々あると思うので、今回シェルスクリプトで定数を使う方法・外部ファイルに定数を定義して使う方法を説明します。
<スポンサードリンク>
定数の使い方
シェルスクリプトに定数を定義。シェルスクリプトに定数を定義して、単純に出力するコードをサンプルにします。
シェルスクリプト
#!/bin/sh # 定数を定義 readonly COMMON_CONSTANT_1="定数1" # 定数を出力 echo $COMMON_CONSTANT_1
実行結果
$ bash test.sh 定数1
定数の命名規則
シェルスクリプトの定数は、上記の例でも記載していますが、大文字のスネークケース、readonly(後述します)で定義します。
シェルスクリプト
#!/bin/sh # 定数を定義 readonly COMMON_CONSTANT_1="定数1"
readonly
定数は、基本的にreadonlyで宣言します。
readonlyで定数を宣言することによって、プログラム内で変更されることがない値(定数)であることが一目でわかります。その上、シェルスクリプト内でreadonlyで宣言した定数の意図せぬ変更を防ぐことが出来ます。
readonlyで宣言した定数を変更しようとするとエラーになります。
例えば、以下のようなシェルスクリプトを用意して、COMMON_CONSTANT_1を上書きしようとします。
シェルスクリプト
#!/bin/sh # 定数を定義 readonly COMMON_CONSTANT_1="定数1" # 定数を上書き COMMON_CONSTANT_1="定数2"
実行結果
定数を上書きしようとした箇所でエラーになります。
$ bash test.sh test.sh: line 7: COMMON_CONSTANT_1: readonly variable
定数を外部ファイルに定義して使う方法
以下のように定数ファイルを定義します。
定数ファイル
$ cat conf/constans.conf #!/bin/sh # 定数1 CONSTANT_1="定数1" # 定数2 CONSTANT_2="定数2" # 定数3 CONSTANT_3="定数3" # 定数4 CONSTANT_4="定数4" # 定数5 CONSTANT_5="定数5"
これを実際にロジックを実行するシェルスクリプトで読み込んで使います。
シェルスクリプト
$ cat test.sh #!/bin/bash # 定数ファイルを読み込み . conf/constans.conf echo ${CONSTANT_1} echo ${CONSTANT_2} echo ${CONSTANT_3} echo ${CONSTANT_4} echo ${CONSTANT_5}
これを実行すると以下のように定数の出力が出来ます。
ぜひ、使ってみてください。
実行結果
$ bash test.sh 定数1 定数2 定数3 定数4 定数5