csh行以等待文件中的文本行

时间:2018-07-11 21:47:57

标签: while-loop csh

我需要使用csh阻止脚本,以使行出现在日志文件中。

到目前为止,我已经尝试过:

while ( ! grep 'run completes with' run.log )
  sleep 10
end

但是我明白了     while: Expression Syntax.

这不是期望的结果。我尝试使用/不使用(),但没有成功。

我已经看到了使用tail -f的解决方案,但我不喜欢其中的许多解决方案最终都将拖尾处理挂起。

是否有单行(或几行)的解决方案而没有尾巴?

谢谢。

1 个答案:

答案 0 :(得分:1)

<snark>与大多数 real 外壳(sh,bash等)</snark>不同,如果需要,您需要使用{}使用命令的成功/失败状态作为条件。

这应该有效:

while ( ! { grep 'run completes with' run.log } )
  sleep 10
end

除非您确实想查看grep -q命令的输出,否则请考虑使用grep

(请注意,这每10秒会重新扫描整个run.log文件,如果文件很大,可能会出现问题。)