我正在尝试读取前面定义的bashvariables的值,但是这个variables名是dynamic派生的。
这是我试图做的bash脚本
$ mythreshold=10 $ table=my $ threshold="$table"threshold $ echo $("$threshold") mythreshold
但是当我尝试读取这个variables值
$ echo $("$threshold") -bash: mythreshold: command not found
但是我期待着它的印刷
$ echo $("$threshold") 10
有没有办法我可以得到这个工作,它应该已经打印出上面定义的mythresholdvariables的值
$()
是命令替换。 它运行里面的命令并返回输出。 变量名称不是一个命令。
你可以$(echo "$threshold")
但只会得到mythreshold
回来。
你需要间接为你想要的。 具体评估间接/参考变量 。
作为一个例子,对于这个特定的情况:
echo "${!threshold}"
使用eval命令:
eval echo \${$threshold}
关于这个命令的更多细节可以在这里找到:
在Bash中的eval命令及其典型用法