想要通过变量替换打印位置参数

想要通过变量替换打印位置参数

$var具有位置参数的位置并想要替换并打印位置参数。

/home/yeshky>echo $1 
/home/yeshky>abc
/home/yeshky>var=1
/home/yeshky>echo "You have opted for $`$var`"

预期结果:/home/yeshky>You have opted for abc

====已尝试替换以下内容但没有成功:

echo "You have opted for $$((var))"
echo "You have opted for $($((var)))"

答案1

你想要的是间接的。在bash和其他一些外壳中你可以做

printf '%s\n' "${!var}"

打印名称存储在变量中的变量的值var

您必须使用大括号来访问变量才能执行此操作,并且大括号内的第一个字符必须是!。然后剩下的就是包含要检索的变量名称的变量名称。

有关更多内容,请参阅这里当然,特别是关于间接的部分

相关内容