当控制台中出现某个关键字时,启动第二个命令

当控制台中出现某个关键字时,启动第二个命令

我正在运行两个 python 程序,比如a.py, b.py

我想通过python3 a.py和运行两个程序python3 b.py,但仅当屏幕上提示一行仅有“hello”时才python3 b.py需要运行-才会继续运行。python3 a.pya.py

可以在 Ubuntu 终端上实现这一点吗?

答案1

您可以将a.py的输出发送到文件并查看该文件:

python3 a.py > output.log &
tail -n+1 -f output.log | grep -q hello && python3 b.py

第一个命令a.py在后台运行,同时将输出发送到output.log。然后第二个命令将 的内容发送到output.loggrep以检查hello。如果grep成功退出,则表示hello已找到 ,b.py然后运行。

请注意,时间并不准确。由于缓冲,第二个脚本将hello在输出出现后一段时间启动。

相关内容