如何将脚本中使用的变量保存在辅助文件中?例如,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
只需使用“点运算符”包含文件。
假设这两个文件在同一个目录中,以下将起作用:
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