我正在尝试读取之前定义的bash变量的值,但此变量名称是动态派生的。
这是我正在尝试的bash脚本
$ mythreshold=10
$ table=my
$ threshold="$table"threshold
$ echo $("$threshold")
mythreshold
但是当我尝试读取像
这样的变量值时 $ echo $("$threshold")
-bash: mythreshold: command not found
然而我期待它打印
$ echo $("$threshold")
10
有没有办法可以得到这个工作,它应该打印上面定义的mythreshold变量的值
答案 0 :(得分:5)
$()
是命令替换。它在内部运行命令并返回输出。变量名称不是命令。
您可以$(echo "$threshold")
,但这样只能获得mythreshold
。
您需要indirection来获得所需内容。具体来说是Evaluating indirect/reference variables。
例如,针对这种特殊情况:
echo "${!threshold}"
答案 1 :(得分:-1)