Korn Shell中的间接引用

时间:2016-04-18 10:26:30

标签: 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

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

$ nameref Flags_array[0]=FLAG_1
ksh: nameref:  not found

请告诉我实现这个目的的正确方法是什么? 因为我想要做的是以后 如果我写Flags_array[0]=10 value of FLAG_1 becomes 10

1 个答案:

答案 0 :(得分:0)

我刚刚在我的控制台上尝试过,似乎你使用了无效的选项来设置....尝试使用小而不是资本:

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

希望这能为你解决问题......:)