Linux bash - 动态配置文件

时间:2014-11-10 15:38:46

标签: linux bash scripting

我尝试组合两个bash文件来创建动态配置文件。其中一个文件(settings.sh)包含变量,另一个(config.sh)命令在它们上执行。

例如,在settings.sh中我有

DATABASE='name_of_the_db'
USER='name_of_the_user'

和config.sh包含

. settings.sh
[...]
'NAME': '$DATABASE',
'USER': '$USER',
[...]

我努力创建一个命令,在第一个文件中获取变量并将其插入第二个文件中,渲染一个包含

的新文件(settings.py)
'NAME': 'name_of_the_db',
'USER': 'name_of_the_user',

我尝试了像

这样的命令

cat< settings.py [...] EOF

这里提出How does ` cat << EOF` work in bash?,但这显然不会执行任何变量替换。

提前谢谢!

1 个答案:

答案 0 :(得分:1)

我会做什么:

settings.sh没问题

config.sh

. settings.sh
cat<<EOF
[...]
'NAME': "$DATABASE",
'USER': "$USER",
[...]
EOF

创建config.py文件:

chmod +x config.sh
./config.sh > config.py

config.sh中的双引号是必需,如果您希望插值变量。见http://mywiki.wooledge.org/BashGuide/Practices#Quoting