如何使用eval读取变量

时间:2015-04-14 00:12:34

标签: linux bash shell

以下是该方案: 假设我设置位置变量:

set 1 2 3 4
eval "args_$1=something"

如何阅读args_1,args_2,args_3 ...变量 我试过了

echo $args_$1

这也无效

eval "\$$(echo arg_$1)"

如何获取$ arg_1的值,在终端上显示或传递给某个功能等等。

2 个答案:

答案 0 :(得分:2)

没有评估:

$ set 1 2 3 4
$ var="args_$1"
$ declare "$var=foo"
$ echo "$var"
args_1
$ echo "${!var}"
foo

这使用indirect variable

答案 1 :(得分:1)

$ set 1 2 3 4; eval arg_$1=koba; eval echo $`echo arg_$1`
koba

PS:不推荐使用eval。