如何将变量传递到从 bash 脚本外部打印的文件?

如何将变量传递到从 bash 脚本外部打印的文件?

假设我有一个变量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

相关内容