你如何回应在bash中回显变量的'输出'?

时间:2013-10-05 08:42:39

标签: bash variables echo variable-assignment

很抱歉,如果标题不是很清楚。所以,我试图在使用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”来选择回显哪个字符串当程序运行read A时,或者“baz”(在这个例子中,我只是将A指定为条形,以使这个问题更容易理解)。

如果有人能告诉我如何开展这项工作,或提供相关提示,我会很感激,谢谢。

1 个答案:

答案 0 :(得分:1)

您正在寻找间接参考:

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

您应该查看How can I use variable variables常见问题解答,了解有关这些(和关联数组)的更多信息。