Ubuntu 在进程执行期间将信息传递到文本文件

Ubuntu 在进程执行期间将信息传递到文本文件

我的问题是,我有一个函数,它称为 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 ...如果您只需要其中的一部分)。

相关内容