我模拟了变量值为 的bar
情况$foo
。foo
也是一个变量,其值为hello
。
$ foo=hello
$ bar=$(echo "\$foo")
$ echo $bar
$foo
我怎么能得到hello
,给定 foo="hello"
和bar="$foo"
?
我试过了:
$ echo $(echo $bar)
但输出仍然是:
$foo
我模拟了变量值为 的bar
情况$foo
。foo
也是一个变量,其值为hello
。
$ foo=hello
$ bar=$(echo "\$foo")
$ echo $bar
$foo
我怎么能得到hello
,给定 foo="hello"
和bar="$foo"
?
我试过了:
$ echo $(echo $bar)
但输出仍然是:
$foo
使用“nameref”
或间接变量
像这样使用
eval
:在上面的示例中,
eval
bash 内置命令将再次解析参数,因此$bar
变量内容将再次被解释为变量 ($foo
),并且其当前内容(hello
在第一种情况和world
第二种情况下)将用作命令的参数echo
。