如何用另一个文件中的变量替换文件中的占位符?(就像 docker-compose 正在做的那样。)
我发现很多关于单变量替换或环境变量替换的文章,但不是文件到文件。
.env 文件
name=John
time='10:00'
内容文件
Hello "${name}"! I wait for u since ${time}.
输出文件:
Hello "John"! I wait for u since 10:00.
编辑:请注意,我也想保留"
在文件中。
Edit2:我最终使用了@steeldriver 的解决方案。这是我现在在我的脚本中使用的:
# Make copy of the template folder (containing scripts and `.env` file)
cp -r templates .templates
# Replace environment variables in all files of the folder
set -a
for file in $(find .templates -type f)
do
. ./.env && envsubst < $file > $file.tmp && mv $file.tmp $file
done
set +a
# create output directory
mkdir -p $HOME/output/
# copy if new or modified
rsync -raz .templates/. $HOME/output/
# remove temp folder
rm -r .templates