如何在 linux/bash 中的引号字符串中使用环境变量

How to use an environment variable inside a quoted string in linux/bash

在 openfoam 中,我使用 foamDictionary 为 ./controlDict 文件中的条目 timeVsFile 设置了一个字符串 ( 800 "patch" )。如图所示,此字符串包含一个双引号。

我定义一个环境变量a来表示值800

a=800
foamDictionary ./controlDict -entry timeVsFile -set '( $a "patch" )'

正确的结果应该是timeVsFile (800 "patch");

但是我得到了timeVsFile ($a "patch");

谁能帮我解决这个问题?

谢谢!

变量没有用单引号展开。

a=800
echo '($a)'

输出:

($a)

要在引号内扩展变量,请使用双引号。

echo '('"$a"')'

输出:

(800)

乱七八糟,但分解成 '('"$a"')'

所以,

'( $a "patch" )'

这可以按如下方式完成。

'( '"$a"' "patch" )'