Linux 动态创建bash变量并访问前面定义的值

Linux 动态创建bash变量并访问前面定义的值,linux,bash,shell,scripting,sh,Linux,Bash,Shell,Scripting,Sh,我试图读取前面定义的bash变量的值,但是这个变量名是动态派生的 这就是我正在尝试的bash脚本 $ mythreshold=10 $ table=my $ threshold="$table"threshold $ echo $("$threshold") mythreshold 但是当我试着读这个变量值时 $ echo $("$threshold") -bash: mythreshold: command not found 但是我希望它能打印出来

我试图读取前面定义的bash变量的值,但是这个变量名是动态派生的

这就是我正在尝试的bash脚本

  $ mythreshold=10
  $ table=my
  $ threshold="$table"threshold
  $ echo $("$threshold")
   mythreshold
但是当我试着读这个变量值时

    $ echo $("$threshold")
    -bash: mythreshold: command not found
但是我希望它能打印出来

  $ echo $("$threshold")
   10
如果有什么方法可以完成这项工作,它应该已经打印了上面定义的mythreshold变量的值。它在内部运行命令并返回输出。变量名不是命令

您可以$echo$threshold,但这只会阻止mythreshold

你需要你想要的。具体地说

例如,对于此特定情况:

echo "${!threshold}"
使用eval命令:

eval echo \${$threshold}
有关此命令的更多详细信息,请参见:


Boo,hiss-eval引入了漏洞空间,包括安全漏洞,而更传统的间接寻址方法不会。参见BasHFAQ 48:…在这个特定的情况下,考虑是否包含阈值,例如,MyPosik:-$RM- Rf//'。一个安全的间接方法会抛出一个错误或对空字符串求值;eval将删除您的驱动器。Downvoting推荐eval完成bash提供明确支持的任务。