オプションと異なる方法でプログラムを制御する方法として環境変数を利用する方法があります。
${parameter:-word}で未定義値の場合の値を設定することができます。
env_script1.sh
1 2 3 4 5 6 7 8 9 |
#!/bin/bash envopt=${MYENV_OPT:-0} if [ $envopt -gt 0 ];then echo "script1 envopt on" else echo "script1 envopt off" fi |
実行結果
1 2 3 4 |
$ bash env_script1.sh script1 envopt off $ MYENV_OPT=1 bash env_script1.sh script1 envopt on |
複数のプログラムで共通の環境変数を利用
複数のプログラムで共通の環境変数を利用するとオプションを利用するのとは違ったプログラムの制御を行うことができます。
1 2 3 4 5 6 7 8 9 10 11 |
$ export MYENV_OPT=1 $ bash env_script1.sh script1 envopt on $ bash env_script2.sh script2 envopt on $ $ unset MYENV_OPT $ bash env_script1.sh script1 envopt off $ bash env_script2.sh script2 envopt off |