Arrays Korn Shell中的间接引用
如何在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]}
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吗????