在bash中显示术语时终止终端应用程序

2024-09-26 22:08:28 发布

您现在位置:Python中文网/ 问答频道 /正文

是否可以编写一个bash脚本来运行python应用程序,直到应用程序的输出显示一个指定的术语,然后关闭应用程序?你知道吗

编辑: 输出如下所示:

2017-11-11 14:21:27 LOG: 192.168.0.1 - Administrator:Test54
2017-11-11 14:21:28 LOG: 192.168.0.1 - Administrator:Test55
2017-11-11 14:21:29 LOG: 192.168.0.1 - Administrator:Test56
2017-11-11 14:21:30 LOG: 192.168.0.1 - Administrator:Test57
2017-11-11 14:21:31 LOG: 192.168.0.1 - Administrator:Test58
2017-11-11 14:21:32 LOG: 192.168.0.1 - Administrator:Test59
2017-11-11 14:21:33 LOG: 192.168.0.1 - Administrator:Test60
2017-11-11 14:21:34 LOG: 192.168.0.1 - Administrator:Test61
2017-11-11 14:21:35 LOG: 192.168.0.1 - Administrator:Test62
2017-11-11 14:21:35 SUCCESS : 192.168.0.1 - Administrator:Test62

它应该在成功出现后关闭。你知道吗


Tags: 脚本bashlog应用程序编辑术语administratortest55
1条回答
网友
1楼 · 发布于 2024-09-26 22:08:28

假设您有以下Python程序:

#!/usr/bin/python
for i in range(0,5001):
    print(i)

您可以在它输出2500时终止它,如下所示:

stdbuf -oL python a.py | sed '/2500/q'

注意,这有点脏,你可能会收到

Traceback (most recent call last):
  File "a.py", line 2, in <module>
    print(i)
BrokenPipeError: [Errno 32] Broken pipe

但如果你想终止程序。。。你知道吗


重要提示:

如果脚本正在写入stderr(就像logging.StreamHandler默认情况下那样),或者如果它正在处理BrokenPipeError,那么这将不起作用。前者可以很容易地用|&重定向修复,但在后一种情况下,kill-INT效果更好。你知道吗

相关问题 更多 >

    热门问题