Если вы действительно делаете что-то упрощенное, вам даже не нужен цикл while read
. Следующее будет работать:
VAR=0
grep "foo" bar && VAR=1
# ...
Если вам действительно нужен цикл, потому что в цикле происходят другие вещи, вы можете перенаправить из <( commands )
замены процесса:
VAR=0
while read line ; do
VAR=1
# do other stuff
done < <(grep "foo" bar)