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
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