Shell替换变量,在[output]中出错

Shell替换变量,在[output]中出错,shell,sh,ksh,Shell,Sh,Ksh,这里需要帮助。我看到了下面的问题 y=1 j$y=`cat /home/devteam/auppu/new_ig_1|head -n $y` ksh: j1=5555555555555555: not found 我没有问题,当我猫的文件,如下所示 cat /home/devteam/auppu/new_ig_1|head -n $y 5555555555555555 你可能需要做一些类似的事情 y=1 x=j${y} x=`cat /home/devteam/auppu/new_ig_1

这里需要帮助。我看到了下面的问题

y=1
j$y=`cat /home/devteam/auppu/new_ig_1|head -n $y`
ksh: j1=5555555555555555:  not found
我没有问题,当我猫的文件,如下所示

cat /home/devteam/auppu/new_ig_1|head -n $y
5555555555555555

你可能需要做一些类似的事情

y=1
x=j${y}
x=`cat /home/devteam/auppu/new_ig_1|head -n $y`
echo $x

您需要创建一个中间变量(本例中为x),然后将
cat
命令的结果分配给它

y=1
x=j${y}
x=`cat /home/devteam/auppu/new_ig_1|head -n $y`
echo $x

您需要创建一个中间变量(本例中为x),然后将
cat
命令的结果分配给它。最简单的方法是使用索引数组,如下所示:

y=1
j[$y]=`cat /home/devteam/auppu/new_ig_1|head -n $y`
echo ${j[$y]}

这样,您可以将循环中对
cat
命令的多次调用存储到
j
变量引用的关联数组中。

最简单的方法是使用索引数组,如下所示:

y=1
j[$y]=`cat /home/devteam/auppu/new_ig_1|head -n $y`
echo ${j[$y]}

这样,您可以将循环中对
cat
命令的多次调用存储到
j
变量引用的关联数组中。

可能重复@BenjaminW。那么,我应该如何获得没有错误的o/p呢?@ady6831983您需要动态命名变量还是只命名为j1?@JonathanThoms是的,它在一个while循环中,所以y是增量的。但由于上述错误,它不会存储变量。循环完成后,是否需要访问变量?有什么原因不能使用数组变量吗?可能是@BenjaminW的重复。那么,我应该如何获得没有错误的o/p呢?@ady6831983您需要动态命名变量还是只命名为j1?@JonathanThoms是的,它在一个while循环中,所以y是增量的。但由于上述错误,它不会存储变量。循环完成后,是否需要访问变量?有什么原因不能使用数组变量吗?第二行在这里没有任何作用。同意,如果OP尝试在循环中执行此操作,则此答案没有那么有用。第二行在这里没有任何作用。同意,如果OP尝试在循环中执行此操作,则此答案没有那么有用。这只是一个索引数组,不是关联的。如果您想要关联,您必须首先声明它是关联的。尽管如此,索引数组似乎是这里更好的解决方案。这只是一个索引数组,而不是关联数组。如果您想要关联,您必须首先声明它是关联的。尽管如此,无论如何,索引数组似乎是更好的解决方案。