假设我有一个变量v="c d e f g"
和一个包含以下内容的文件:
line1
$v
line3
如何让 bash 脚本使用第 2 行中变量的内容打印此文件,就像我使用这样的此处文档一样:
#!/bin/bash
v="c d e f g"
cat << EOF
line1
$v
line3
EOF
输出:
line1
c d e f g
line3
答案1
用于envsubst
解析文件并替换环境变量(在envsubst
's 环境中)对应的变量:
$ v='c d e f g'
$ v=$v envsubst <file
line1
c d e f g
line3
或者,首先导出v
:
$ export v
$ envsubst <file
line1
c d e f g
line3
在我的系统上,envsubst
作为包的一部分分发gettext
。