2016-07-25 33 views
0

假設我有一個包含一些子目錄和一些文件的目錄,我正在使用它們。報告在for循環中正在處理的元素

下面是我用命令:

for DATA in 9372161117 9372161118 9372161119 9372161153 9372161162 9372161163 9372161174 9372161189 9372161202 9372953017 9372953023 9372953024 9372953041 9372953049 9372953050 9372953053 9372953060 9374339086 9374339107 9374339128 9374339140 9374344040 9374344041 9374344138 9374345027 9374363112 9374363116 9374363117 9374363139 9374364101 9374365025 9374365109 9374365129 9374365160 9374682068 9374682069 9374682130 9374683008 9374683019 9374683020 9374683043 9374683044 9374683045 ; do 
    echo "Processing *.idat-files in folder ${DATA}..."; 
    gzip -v ${DATA}/*.idat; 
    echo "========================"; 
    echo ""; 
done 

我知道如何彙報其元素的DATA列表正在處理中。但我的問題是:我能得到一個數字嗎?所以報告回來會是這樣的:「處理目錄號碼1:9372161117」,「處理目錄號碼2:9372161118」等。

+2

只是跟蹤它的計數器。 '(i ++))' – fedorqui

回答

1

是的,你可以。請i迭代次數然後打印&增量它每次迭代:

i=1; 
for DATA in 9372161117 9372161118 9372161119 9372161153 9372161162 9372161163 9372161174 9372161189 9372161202 9372953017 9372953023 9372953024 9372953041 9372953049 9372953050 9372953053 9372953060 9374339086 9374339107 9374339128 9374339140 9374344040 9374344041 9374344138 9374345027 9374363112 9374363116 9374363117 9374363139 9374364101 9374365025 9374365109 9374365129 9374365160 9374682068 9374682069 9374682130 9374683008 9374683019 9374683020 9374683043 9374683044 9374683045 ; do 
    echo "Processing directory number ${i}: ${DATA} "; 
    echo "Processing *.idat-files in folder ${DATA}..."; 
    gzip -v ${DATA}/*.idat; 
    echo "========================"; 
    echo ""; 
    ((i++)); 
done 
+0

'i = 1;'是錯誤的,這將嘗試執行參數爲'='和'1'的命令'i' 。相反,你需要說'我= 1'。而且,在每行的末尾不需要使用分號。 – fedorqui

+0

@fedorqui修復了'i = 1',謝謝。分號用於方便,並遵循OP的使用。 –