读取bash和循环中的行,直到所有行匹配为相同

时间:2015-08-06 21:16:06

标签: bash shell while-loop sh

我想读取文件中的所有行,然后检查所有行是否具有相同的字符串值。我想在这种情况发生之前进行循环。怎么办我用bash写的?

我正在检查条件并在文件中写入“是”或“否”字。 我想循环这个,直到所有行在测试中都有单词。 (使用awk命令生成测试文件)。 测试文件输出最初看起来像 没有 没有 无

运行脚本,直到'测试'文件将内容更改为 是 是 是

如何编写循环并将条件置于bash中?

1 个答案:

答案 0 :(得分:1)

# loop repeatedly until file matches
until grep -qv yes file; do
    sleep 1   # todo: wait until file changes
done

# file matched

说明:

  • grep -q搜索而不打印任何内容。
  • 如果任何行grep -q yes,则
  • yes成功。
  • 如果任何行 grep -vq yes,则
  • yes成功。
  • 只要任何行 until grep -vq yes
  • yes就会循环播放。换句话说,它会循环,直到所有行都为yes