如何循环输出命令?

时间:2016-09-26 22:04:04

标签: arrays linux bash shell loops

我在bash脚本中有一个命令,它提供以下输出

repository: docker/images
tags:
- 0.1-1
- 0.1-2
- 0.1-3
- 0.1-6
- 0.1-7
- 0.1-9

但是,从上面的输出中,我只需要浏览0.1-1, 0.1-2 ...并运行不同的命令。

请告诉我如何实现这一目标

1 个答案:

答案 0 :(得分:2)

使用-添加测试以检查该行是否以grep开头:

... | grep '^-' | while read -r line; do echo "$line"; ## Do stuffs; done

grep的输出被缓冲时,您可能需要行缓冲,需要GNU grep

... | grep --line-buffered '^-' | while ...; do ...; done

或使用stdbuf

... | stdbuf -oL grep '^-' | while ...; do ...; done