gpt4 book ai didi

Linux - 将 shell 脚本重定向到文本文件

转载 作者:太空宇宙 更新时间:2023-11-04 05:15:55 25 4
gpt4 key购买 nike

我是 Linux 新手,一直在尝试解决作业但无济于事。

我有一个 shell 脚本,它以某种方式打印出文本文件的行(每隔几秒打印一行):

    python << END

import time,random
a= open ('/home/ch/pshety/course/fielding_history.txt','r')
flag =False
for i in range(1000):
b=a.readline()
if i==402 or flag:
print(a.readline())
flag=True
time.sleep(2)

END

sh th.sh

如果我运行它而不尝试将其重定向到任何地方,我会在终端上得到输出。但是,当我尝试将其重定向到新的文本文件时,它没有执行任何操作 - 文本保持为空:

sh th.sh > debug.txt

我尝试寻找答案,我偶然发现了很多建议,包括 tee 但没有任何帮助 - 文件仍然是空的。

我做错了什么?

最佳答案

试试这个:

import time,random
a = open('/home/ch/pshety/course/fielding_history.txt', 'r')

for i in range(1000):
b = a.readline()
if i >= 402:
print(b, flush=True)
time.sleep(2)

您的 Python 脚本可能需要刷新输出缓冲区的内容才能看到它。

注意:除了 sleep() 调用之外,Unix 还提供了其他方法来实现此目的。我会看一下 man tail 并了解 -f-n 开关。

编辑:没有意识到tail也有一个 sleep 开关(-s)!

关于Linux - 将 shell 脚本重定向到文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49495831/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com