2015-11-19 51 views
0

我想寫下列方式出口的數組遍歷的腳本:註釋掉多線串線在bash腳本

export fields=" 
a,1 
b,2 
c,3 
... 
" 

for i in $fields 
do 
    IFS="," 
    set $i 
    ... 
done 

有沒有辦法只能註釋掉單在我使用的字段「元組」的列表中行嗎?換句話說,如果我想運行這個並跳過「b,2」有沒有辦法在不刪除該行的情況下評論此行?

+2

你爲什麼不使用真正的數組,而不是該換行分隔的字符串?然後你可以註釋掉數組定義的那部分。 –

+0

這將做到這一點。感謝您的建議! – AvocadoRivalry

+0

您不需要導出僅供腳本使用的變量。 – chepner

回答

1

首先,定義了每個元素一行(無需導出)一個數組:

fields=(
    # a,1 
    b,2 
    c,3 
) 

注意,你可以點綴與其餘元件註釋行。

然後遍歷數組的內容,並使用read命令分割每個元素分爲兩個區域:

for line in "${fields[@]}"; do 
    IFS=, read f1 f2 <<< "$line" 
    ... 
done