我正在编写一个 bash 脚本来执行定期服务器维护。对于此任务,我正在运行一个程序,该程序大约需要 30 分钟才能执行,并且每隔几分钟就会写入标准输出。我需要脚本来处理程序实时写入的这些行。我目前正在使用 read-while 循环来处理每一行,如下所示:
output=$($maintenance_command)
while read -r line; do
<processing logic>
done <<< "$output"
它确实工作正常,但在程序退出之前它不会执行任何处理。有什么方法可以在后台运行它并读取写入的输出吗?
答案1
我正在使用 python 脚本测试此脚本,该脚本将输出与真实程序相同的行。然而,这种行为并没有发生在真实的程序中,所以一定是 python 脚本的问题。