スクリプトで使用されている変数をセカンダリファイルに保持するにはどうすればよいですか?たとえばmyscript.env
、スクリプトで使用するためにストア変数を使用しますmyscript.sh
。
myscript.env
したがって、変数を変更する必要があるときはいつでも、の代わりに編集できますmyscript.sh
。
これはごく普通のデザインパターンです。の線に沿って考える
myscript.sh:
#!/path/to/shell
CONFIG_FILE=myscript.env
CONFIG_DIR=`dirname $0`
# or e.g. CONFIG_DIR=/etc/myscript
CONFIG="$CONFIG_DIR/$CONFIG_FILE"
. $CONFIG
echo "SOMEVAR=$SOMEVAR"
myscript.env
SOMEVAR="The value of some var"
今/path/to/myscript.sh
出力しますSOMEVAR=The value of some var
「ドット演算子」を使用してファイルを含めるだけです。
これらの2つのファイルが同じディレクトリにあると仮定すると、以下が機能します。
t.sh:
#!/usr/bin/sh
# Note the first dot on the following line
. ./t.env
echo $TESTVAR
t.env:
TESTVAR="Hello world"
実行時:
~/tmp$ sh ./t.sh
Hello world