bash:如何在`cat`文件后用变量名替换所有变量名?

时间:2016-11-15 08:47:26

标签: linux bash replace echo cat

A.txt包含以下内容:$x + $y = $z

我希望cat A.txt能回显$x + $y = $z,但我想让变量替换为它们的值,无论如何?

让我们看看另一个简单的测试:  B.txt包含$x,我们可以使用echo `echo \$x`echo $(echo \$x)echo `cat B.txt`

为什么cat dosn工作?以及如何做到这一点?

2 个答案:

答案 0 :(得分:0)

我能想到的只是

x=2
y=1
z=3
cat A.txt | sed -e "s/\$x/$x/" -e "s/\$y/$y/" -e"s/\$z/$z/"

虽然这不是很有活力。

答案 1 :(得分:-1)

使用eval:

$ x=1
$ y=2
$ z=3    
$ eval echo $(<A.txt)
1 + 2 = 3