2014-01-29 91 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命令的(反引號告訴解釋器來做到這一點)什麼代碼
相關問題