2015-11-19 52 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