Arrays Korn Shell中的间接引用

Arrays Korn Shell中的间接引用,arrays,shell,ksh,Arrays,Shell,Ksh,如何在korn shell中引用间接变量 假设我有一个变量 FLAG_1=0 我希望这个变量值从我设置的数组中改变 set -A Flags_array Flags_array[0]=? #how to achieve this here 例如,如果我尝试 Flags_array[0]=$FLAG_1 # this won't work as this assign the value 我试过这样做 Flags_array[0]=FLAG_1 echo ${Flags_array[0]}

如何在korn shell中引用间接变量

假设我有一个变量

FLAG_1=0
我希望这个变量值从我设置的数组中改变

set -A Flags_array
Flags_array[0]=? #how to achieve this here
例如,如果我尝试

Flags_array[0]=$FLAG_1 # this won't work as this assign the value
我试过这样做

Flags_array[0]=FLAG_1
echo ${Flags_array[0]}
但这会给出输出
标志1

我尝试使用
nameref
,但它给了我错误

$ nameref Flags_array[0]=FLAG_1
ksh: nameref:  not found
请告诉我实现这一目标的正确方法是什么? 因为我想以后再做
如果我写入
Flags\u array[0]=10
FLAG\u 1的
值变为10

我刚刚在我的控制台上尝试过,您似乎对set使用了无效的选项。。。。尝试使用小a而不是资本:

set -a Flags_array
就这样在我的控制台中工作:

set -a array
number=5
array[0]= $number
echo $array[0]   --------> from which i got result : 5[0]
另外,为了便于将来参考,您不需要花括号
{}
,仅当您在需要实际数据的地方调用变量时,才使用这些花括号(对不起,表达式),例如,这里您需要它们:

were e.g. random=5

sed "${random}s/^.*$/1/" test.txt

希望这能帮你解决问题:)

我刚刚在我的控制台上试用过,似乎您对set使用了无效的选项。。。。尝试使用小a而不是资本:

set -a Flags_array
就这样在我的控制台中工作:

set -a array
number=5
array[0]= $number
echo $array[0]   --------> from which i got result : 5[0]
另外,为了便于将来参考,您不需要花括号
{}
,仅当您在需要实际数据的地方调用变量时,才使用这些花括号(对不起,表达式),例如,这里您需要它们:

were e.g. random=5

sed "${random}s/^.*$/1/" test.txt

希望这能帮你解决问题:)

资本A也可以运作没有花括号,您得到的结果不是有效的结果
result:5[0]
,这里我不寻求结果问题是关于间接引用的人该告诉您什么,在我连接到私有服务器的机器上,它使用小a工作,在资本上,我得到一个错误,并且它在结果上工作良好,你确定你在运行ksh吗???capital A也可以运行没有花括号,您得到的结果不是有效的结果
result:5[0]
,这里我不寻求结果问题是关于间接引用的人该告诉您什么,在我连接到私有服务器的机器上,它使用小a工作,在资本上,我得到一个错误,并且它在结果上工作良好,你确定你正在运行ksh吗????