2014-03-07 105 views
0

在我的shell腳本,我寫在輸出文件while循環的結果,所以輸出文件看起來像這樣:覆蓋文件while循環在shell腳本完成之後才

23 
    34 
    45 
    35 

但是,當我使用>而不是>>我只獲取最後一個數字,因爲每個先前的數字都會被覆蓋,而我首先要總結所有這些數字,然後纔會覆蓋該文件,以便第二次用新數字運行shell腳本。 我想知道是否有辦法做到這一點。

+0

在寫入文件之前執行所有您需要的任務。你是對的,'''追加,''''重寫。 – zogby

回答

0

你可以做這樣的事情,通過存儲陣列中的搜索結果X []

x=($(for i in {1..4}; do echo $i; ((j+=i));done;echo $j)) 
echo ${x[@]} 
1 2 3 4 10 

然後你可以寫任何你想要的文件後使用保存的輸出生成文件的內容。

注:

陣列像這樣工作在最簡單的情況:

x=(1 2 3 4) 
echo ${x[@]} 
1 2 3 4 

我總結循環控制變量$i成可變$j

x=($(xyz))創建具有元素的數組x[]設置爲運行命令的結果xyz

{1..4}只是創建號碼爲一個循環帶4次迭代

echo ${x[@]}打印餘存儲添加在所述陣列的最後一個元素的結果陣列x[]

的全部內容的簡單列表。