我尝试在部署时创建配置文件,然后为每个配置文件运行我的程序,每次都将配置加载到环境变量中。这是我能做的最接近的事情:
# ADD CONFIG
mkdir /cfg
cat > /cfg/site.cfg << EOF
name = site
url = ftp.site.com # Location of data
username = test # Optional - Username credential
password = pass # Optional - Password credential
frequency = 1 # Optional - Update once a day
EOF
# ADD SCRIPT
cat > /run.sh << EOF
for f in cfg
do
echo "Processing $f"
#set env from config
#run program with env
done
如何在运行程序之前使用我的配置设置env变量(因此可以使用该特定要求集运行)
答案 0 :(得分:1)
您的脚本可以是这样的
cat > /run.sh << EOF
for f in cfg
do
echo "Processing $f"
#set env from config
#run program with env
bash -c "set -a; source $f; ./exec_prog"
done
$ f中设置的所有变量都可用于exec_prog。 希望它有所帮助。
答案 1 :(得分:1)
您可以在执行主脚本之前获取cfg文件。
CFGFILE=<Your Corresponding Config File>
# ADD SCRIPT
cat > /run.sh << EOF
CFGFILE=$1
if [ ! -f "$CFGFILE" ]
then
echo "Error: Unable to source file $CFGFILE" >&2
exit 1
fi
. $CFGFILE
echo "Processing $f"
#set env from config
#run program with env