当我使用“cat”命令将文本文件的内容放入变量时,变量不会被解释

C.M*_*mba 3 variables bash cat

我需要一些帮助,我有一个脚本(script.sh),内容如下:

#!/bin/bash

export name='toto'
file='file.txt'
content=$(cat "file.txt")
echo "$content"
Run Code Online (Sandbox Code Playgroud)

file.txt 内容一些文本:我是 $name

现在,当我运行脚本(script.sh)时,变量 $name 不会被解释,我得到这样的结果: I am $name 我想要这样的结果: I am toto

Max*_*xim 6

你可以用envsubst这个:

content=$(envsubst < "file.txt")
Run Code Online (Sandbox Code Playgroud)

  • 如果没有[UUOC](https://porkmail.org/era/unix/award.html),这个好的答案会更好。 (3认同)