2014-01-29 106 views
0

在shell脚本中,我有一个for循环内的if条件的循环。如何在shell脚本中将循环的输出值存储在数组中?

for ((init; condition; increment)) 
do 
    if ((condition)) then 
     printf ... 
    fi 
done 

printf statement在输出上打印值。但是,我想将这些值存储在一个数组中以在另一个循环内部使用。我该怎么做呢?

+0

小丑,请在编辑语法之前更注意所使用的语言。您的更改对于C#完全有效,而对于Unix shell脚本而言则不然。 –

回答

0

你在for loop之前初始化一个数组,for loop内部只是附加数组。

代码骨架:

# initializing an array 
arr=() 
for ((i=0; i<=5; i++)) do if ((...)) then arr+=($i); printf .... fi done 
  • arr=()创建新的数组
  • arr+=($i)追加/添加的元素到数组arr
0

这里的溶液:

#!/bin/bash 

data=() #declare an array outside the scope of loop 
idx=0 #initialize a counter to zero 
for i in {53..99} #some random number range 
do 
    data[idx]=`printf "number=%s\n" $i` #store data in array 
    idx=$((idx+1)) #increment the counter 
done 
echo ${data[*]} #your result 

确实

  • 创建和空数组
  • 创建用于阵列的索引计数器
  • 存储在对应索引在阵列导致输出printf命令的(反引号告诉解释器来做到这一点)什么代码
相关问题