我的问题是,我有一个函数,它称为 function1,它无限期地运行。该函数本身每 1 秒回显一次“hello”。使用以下命令:
function1 >> temp.txt
如果我查看文件 temp.txt,每隔 1 秒我都会看到一行新内容,内容为“hello”。然而,实际情况是,该函数在运行完成之前不会写入文件。因此,如果我要终止该函数,则不会写入任何内容。有人知道在这种情况下我可以做什么来动态更新 temp.txt 吗?
我有一个按以下方式设置的python脚本:
while [1>0]: print "hello" time.sleep(1)
因此它将始终运行。现在我在 bash 脚本中调用它
python pythonscript.py >> temp.txt
如果kill
该过程没有记录任何数据。
答案1
既然您提到它不是一个 shell 函数,而是 python 脚本中的 python 函数:这解释了一些,下面是您的答案:
打印 - 如何刷新 Python 打印的输出? - 问答 - 云+社区 - 腾讯云
您需要将其放入您的 python 函数的循环中:sys.stdout.flush()
——当然您需要在import sys
之前这样做(或者from sys import ...
如果您只需要其中的一部分)。