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

bash: How to replace all variable names with their values after `cat` a file?

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 不起作用?以及如何去做?

我能想到的就是

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

虽然这不是很动态。

使用评估:

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