小编JSc*_*Ced的帖子

动态构建 shell 变量

我需要动态创建变量名,如下所示(简化示例):

#!/bin/sh

IDX=1
SERIES1="a b c d e f g"
SERIES2="h i j k l m n"

# How to get this value contains $SERIES1 or $SERIES2
# depending on the value of $IDX
CURRENT=${SERIES\${IDX}} # doesn't work, just an example
Run Code Online (Sandbox Code Playgroud)

如果IDX=1我期望有

echo $CURRENT
Run Code Online (Sandbox Code Playgroud)

显示

a b c d e f g
Run Code Online (Sandbox Code Playgroud)

如果IDX=2要显示

h i j k l m n
Run Code Online (Sandbox Code Playgroud)

我需要在循环中使用它来处理来自另一个脚本的不确定数量的 SERIES。

编辑 目前使用shshell,但如果需要,我可以使用不同的 shell(即使这意味着我可能需要转换一些东西,但没关系)

我的问题是:如何将所需的系列分配给CURRENT

我尝试了什么?上面的例子(不起作用)和其他风格,例如:

CURRENT=$${SERIES$${IDX}}
CURRENT=${SERIES${IDX}}
Run Code Online (Sandbox Code Playgroud)

编辑2

我正在去某件事的路上:

eval echo …
Run Code Online (Sandbox Code Playgroud)

linux shell

3
推荐指数
1
解决办法
3664
查看次数

标签 统计

linux ×1

shell ×1