相关疑难解决方法(0)

强制bash扩展从文件加载的字符串中的变量

我试图找出如何使字符串(从文件加载)中的bash(强制?)扩展变量.

我有一个名为"something.txt"的文件,内容如下:

hello $FOO world
Run Code Online (Sandbox Code Playgroud)

然后我跑了

export FOO=42
echo $(cat something.txt)
Run Code Online (Sandbox Code Playgroud)

这会返回:

   hello $FOO world
Run Code Online (Sandbox Code Playgroud)

即使变量已设置,它也没有扩展$ FOO.我无法评估或获取文件 - 因为它会尝试并执行它(它不是可执行的 - 我只是想要插入变量的字符串).

有任何想法吗?

unix linux bash shell

75
推荐指数
5
解决办法
5万
查看次数

解析包含在另一个变量中的bash变量

我有这样的代码:

TEXT_TO_FILTER='I would like to replace this $var to proper value
                in multiline text'
var=variable
Run Code Online (Sandbox Code Playgroud)

我想要的是:

TEXT_AFTER_FILTERED="I'd like to replace this variable to proper value"
Run Code Online (Sandbox Code Playgroud)

所以我做了:

TEXT_AFTER_FILTERED=`eval echo $TEXT_TO_FILTER`
TEXT_AFTER_FILTERED=`eval echo $(eval echo $TEXT_TO_FILTER)`
Run Code Online (Sandbox Code Playgroud)

或者甚至更奇怪的东西,但没有任何影响.我记得有一天我有类似的问题,我做了类似的事情:

cat << EOF > tmp.sh
echo $TEXT_TO_FILTER
EOF
chmod +x tmp.sh
TEXT_AFTER_FILTERED=`. tmp.sh`
Run Code Online (Sandbox Code Playgroud)

但这个解决方案似乎要复杂得多.你有没有听说过更简单的解决方案?

string bash replace

5
推荐指数
1
解决办法
4201
查看次数

标签 统计

bash ×2

linux ×1

replace ×1

shell ×1

string ×1

unix ×1