0

如何将脚本中使用的变量保存在辅助文件中?例如,myscript.env在脚本中使用存储变量myscript.sh

因此,每当我需要更改变量时,我都可以编辑myscript.env而不是myscript.sh.

4

2 回答 2

0

这是很常见的设计模式。沿着以下思路思考

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

于 2012-09-14T00:44:11.973 回答
0

只需使用“点运算符”包含文件。

假设这两个文件在同一个目录中,以下将起作用:

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
于 2012-09-14T00:50:13.787 回答