在bash中读取时跳过一个variables

我正在使用一个文件读取一些variables

while read abc; do (something) done < filename 

是否有一个优雅的方式来跳过一个variables(读取一个空值),即如果我想a = 1 b = c = 3,我应该在文件中写什么?

现在我正在放

 1 "" 3 

然后使用

b = $(echo $ b | tr -d \“)

但这是相当繁琐的,恕我直言

有任何想法吗?

有一个空白字段:

1 3

你可以做:

 if [[ -zc ]] then c=b b= fi 

如果你的数据是用逗号分隔的,你也可以这样做:

 while IFS=, read abc 

(但如果您的字段包含逗号,则会出现问题,因为如果它们包含引号,则可能在当前版本中):

1,…,3

另外,在你的版本中,而不是使用tr ,你可以这样做:

 b=${b//\"\"} 

但是可以使用以下当前数据格式完全消除该步骤:

 while IFS='"' read abc 

但是,逗号分隔的字段是更常见的格式。

我不确定我是否理解你想要的,但是你可以跳过迭代的某些值(不pipe是什么时候,或者什么时候),甚至可以停止迭代

 while read abc ;do if [[ $b == 0 || $c == 0 || $a == 0 ]];then continue fi (makelovenotwar) done < /foo/bar