Linux 如何使用eval读取变量

Linux 如何使用eval读取变量,linux,bash,shell,Linux,Bash,Shell,以下是场景: 假设我设置了位置变量: set 1 2 3 4 eval "args_$1=something" 如何读取args_1、args_2、args_3。。。变量 我试过了 这也不管用 eval "\$$(echo arg_$1)" 如何获取$arg_1的值,以便在终端上显示或传递给函数等 $ set 1 2 3 4; eval arg_$1=koba; eval echo $`echo arg_$1` koba 注:不建议使用eval 注:不建议使用eval 注:不建议使用eva

以下是场景: 假设我设置了位置变量:

set 1 2 3 4
eval "args_$1=something"
如何读取args_1、args_2、args_3。。。变量 我试过了

这也不管用

eval "\$$(echo arg_$1)"
如何获取$arg_1的值,以便在终端上显示或传递给函数等

$ set 1 2 3 4; eval arg_$1=koba; eval echo $`echo arg_$1`
koba
注:不建议使用eval

注:不建议使用eval

注:不建议使用eval

注:不建议使用eval。

不使用eval:

$ set 1 2 3 4
$ var="args_$1"
$ declare "$var=foo"
$ echo "$var"
args_1
$ echo "${!var}"
foo
这将使用不带评估的。

$ set 1 2 3 4
$ var="args_$1"
$ declare "$var=foo"
$ echo "$var"
args_1
$ echo "${!var}"
foo
这将使用不带评估的。

$ set 1 2 3 4
$ var="args_$1"
$ declare "$var=foo"
$ echo "$var"
args_1
$ echo "${!var}"
foo
这将使用不带评估的。

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

这将使用。不建议使用eval,但您可以尝试:设置1 2 3 4;eval arg_u$1=科巴;eval echo$`echo arg_$1`顺便说一句,我最强烈地赞同这个链接问题的答案是——在这里给出的例子中,这意味着类似于
printf-v“$args_$1”%s value
…但实际上,阅读BashFAQ#6,以获得比StackOverflow更完整的答案/方法集。不建议使用eval,但您可以尝试:set 1 2 3 4;eval arg_u$1=科巴;eval echo$`echo arg_$1`顺便说一句,我最强烈地赞同这个链接问题的答案是——在这里给出的例子中,这意味着类似于
printf-v“$args_$1”%s value
…但实际上,阅读BashFAQ#6,以获得比StackOverflow更完整的答案/方法集。不建议使用eval,但您可以尝试:set 1 2 3 4;eval arg_u$1=科巴;eval echo$`echo arg_$1`顺便说一句,我最强烈地赞同这个链接问题的答案是——在这里给出的例子中,这意味着类似于
printf-v“$args_$1”%s value
…但实际上,阅读BashFAQ#6,以获得比StackOverflow更完整的答案/方法集。不建议使用eval,但您可以尝试:set 1 2 3 4;eval arg_u$1=科巴;eval echo$`echo arg_$1`顺便说一句,我最强烈地赞同这个链接问题的答案是——在这里给出的例子中,这意味着类似于
printf-v“$args_$1”%s value
…但实际上,请阅读BashFAQ#6,以获得比StackOverflow上提供的更完整的答案/方法集。请分享其他方法。请分享其他方法。请分享其他方法。请分享其他方法。请分享其他方法