【发布时间】:2025-12-18 16:40:01
【问题描述】:
这是场景: 假设我设置了位置变量:
set 1 2 3 4
eval "args_$1=something"
如何读取 args_1,args_2,args_3... 变量 我试过了
echo $args_$1
这也不起作用
eval "\$$(echo arg_$1)"
如何获取 $arg_1 的值,在终端上显示或传递给函数等。
【问题讨论】:
-
不推荐使用 eval 但可以尝试:set 1 2 3 4;评估 arg_$1=koba; eval echo $`echo arg_$1`
-
顺便说一句,我最强烈赞同链接问题的答案是*.com/a/16973754/14122——在这里给出的情况下,它的意思是
printf -v "$args_$1" %s value -
...但实际上,请阅读 BashFAQ #6 以获得比 * 上可用的更完整的答案/方法集。