Arrays 遍历数组值并将其分配给新的shell变量

Arrays 遍历数组值并将其分配给新的shell变量,arrays,linux,shell,for-loop,session-variables,Arrays,Linux,Shell,For Loop,Session Variables,我有一个输入txt文件,每行代表一个值,我需要捕获并分配给一个变量进行处理。我已经创建了一个数组,如下所示,但是我想创建一个循环,使用这些变量来处理.txt中每一行下面底部的if语句。我尝试了以下方法,但它没有迭代,只是为每一行指定了相同的值: for i in ${pov[@]} do echo ${pov[1]} done output: $ ./sed SPT_SEQ_010,FY16 SPT_SEQ_010,FY16 SPT_SEQ_010,FY16 SPT_SEQ_010,FY16

我有一个输入txt文件,每行代表一个值,我需要捕获并分配给一个变量进行处理。我已经创建了一个数组,如下所示,但是我想创建一个循环,使用这些变量来处理.txt中每一行下面底部的if语句。我尝试了以下方法,但它没有迭代,只是为每一行指定了相同的值:

for i in ${pov[@]}
do
 echo ${pov[1]}
done

output:
$ ./sed
SPT_SEQ_010,FY16
SPT_SEQ_010,FY16
SPT_SEQ_010,FY16
SPT_SEQ_010,FY16
SPT_SEQ_010,FY16
SPT_SEQ_010,FY16
SPT_SEQ_010,FY16
SPT_SEQ_010,FY16
SPT_SEQ_010,FY16
SPT_SEQ_010,FY16
这是我正在使用的输入和数组

##$cat seq_fy.txt
spt_seq_01,fy15
spt_seq_01,fy16
spt_seq_02,fy15
spt_seq_02,fy16

##array:
$ cat sed
pov=($(sed \n  seq_fy.txt))

##can echo pov:
$ cat sed
pov=($(sed \n  seq_fy.txt))
echo ${pov[1]}

$ ./sed
SPT_SEQ_010,FY16
我需要获取从${pov[1]}到[50]的每个pov值,并按照当前在if语句/for循环中的方式进行处理,如下所示,直到数组为空。一个问题是pov确定了其他值

##current if statement being used and working after declaring each POV separately
##not using an array for the current process
if [ ! -z $pov01 ];
then
export step=${pov01//\"/}
export step03_01=$step
export pov=${pov01//\"/}
.... (using $pov as variable in connection string)
fi
您需要回显${pov[i]},而不是${pov[1]}:

如果我正确理解您的代码,您也可以通过while循环直接阅读seq_fy.txt:

cat seq_fy.txt | while read seqvar; do
    echo $seqvar
done

我最初是这样做的,它基本上只是把输入文件吐出来。我知道它是循环的,但我需要使用pov1、pov2、pov3。。。。由于与外部应用程序的连接字符串中的参数不相关,因此我的目标是分别处理每一行pov,直到它到达文件的末尾……概念上类似于${pov[@]}-lt 50],然后导出pov=$pov[i]或如果[!-z${pov[@]},那么导出pov=$pov[i]else end…..目前,我已经分别导出了每个pov,然后对每个pov都有一个if,但这并不高效
cat seq_fy.txt | while read seqvar; do
    echo $seqvar
done