0

对不起,如果标题不是很清楚。read因此,在使用从用户获取变量(在本例中为 $A)之后,我试图在 bash 中回显一个变量,如下所示:

foobar="good"
A=bar
B="\$foo$A"
echo $B

但是回显 $B 的输出是“$foobar”,而不是“好”,这正是我想要的。我eval $B最后尝试过使用,但它只是告诉我“好”不是命令。eval $(echo $B)也没有用,它还告诉我“好”不是命令。echo $(eval $B)还告诉我“好”不是命令,并且还会打印一个空行。

为了帮助澄清为什么我需要这样做:foobar 是一个包含字符串“good”的变量,而 foobaz 包含“bad”,我想让用户通过键入“bar”或“baz”来选择回显哪个字符串" 在程序运行时read A(在本例中,我只是将 A 指定为条形以使这个问题更容易理解)。

如果有人能告诉我如何完成这项工作,或提供相关提示,我将不胜感激,谢谢。

4

1 回答 1

2

您正在寻找间接参考:

$ foobar="hello"
$ A=bar
$ B="foo$A"
$ echo "$B" "${!B}"
foobar hello

您应该查看如何使用变量变量常见问题解答以了解有关这些变量(和关联数组)的更多信息。

于 2013-10-05T08:52:02.217 回答