假设我var
在bash中有一个变量。我可以给它赋一个值。例如,我将其设置为字符串:
var="Test"
我要echo
的名字var
,而不是所拥有的价值var
。(我可以用做后者echo $var
,但实际上我想做前者。)
SO对此问题的答案说可以使用echo ${!var}
,但是当我这样做时,我只回显一个空行。例如,此bash脚本
#!/bin/bash
echo "Hi"
var="Test"
echo ${!var}
echo "Bye"
返回此输出:
Hi
Bye
在Hi和Bye之间只有一个空行,而不是var。我究竟做错了什么?
我在Ubuntu 10.04.4上运行bash 4.1.5(1)。
我真的不明白这一点。正如@Braiam指出的那样,由于首先要定义变量的名称,因此您将始终知道该变量并能够打印该变量。您实际上想做什么?
—
terdon
我认为您已经错过了SO解决方案的漂移;试试
—
iruvar
var=Test; Test=SO; echo ${!var}
我也不太明白,但这是您想要做什么?回声是$ var'
—
雷南维森特
我真的很好奇,请告诉我们您需要什么!
—
bubakazouba
echo var
吗?