Linux 动态创建bash变量并访问前面定义的值
我试图读取前面定义的bash变量的值,但是这个变量名是动态派生的 这就是我正在尝试的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 但是我希望它能打印出来
$ 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提供明确支持的任务。