如何在bash脚本中运行程序并读取脚本中的输出?

如何在bash脚本中运行程序并读取脚本中的输出?

我正在编写一个 bash 脚本来执行定期服务器维护。对于此任务,我正在运行一个程序,该程序大约需要 30 分钟才能执行,并且每隔几分钟就会写入标准输出。我需要脚本来处理程序实时写入的这些行。我目前正在使用 read-while 循环来处理每一行,如下所示:

output=$($maintenance_command) 
while read -r line; do
    <processing logic>
done <<< "$output"

它确实工作正常,但在程序退出之前它不会执行任何处理。有什么方法可以在后台运行它并读取写入的输出吗?

答案1

我正在使用 python 脚本测试此脚本,该脚本将输出与真实程序相同的行。然而,这种行为并没有发生在真实的程序中,所以一定是 python 脚本的问题。

相关内容