BASH 中计算变量的函数

BASH 中计算变量的函数

给定一个变量名,是否有一个函数可以打印它的值?

很多时候,我将变量的名称传递给 bash 函数,而不是在传递变量时进行扩展,而是希望在函数内扩展它。当然,当我这样做时,我最终必须创建带有变量名的字符串,然后运行 ​​exec。如果我可以运行一个回显输出的命令,那就更简洁了!

答案1

show_val() { echo "${!1}"; }
foo=bar
echo $(show_val foo)   # => bar
# works with arrays too
a=(zero one two)
echo $(show_val a[1])  # => one

bash 手册中有记录这里

答案2

不确定您关于“运行 exec”的问题是什么意思。也许你的意思是评估。

show_val() { eval echo \$$1; }
富=酒吧
显示_val foo

相关内容