wget:下载LIVE txt文件

时间:2012-11-14 16:49:55

标签: bash wget

我在bash脚本的末尾有这一行:

wget -q $URL -Y off

其中URL LIVE txt文件的路径,该文件包含我的bash脚本的控制台输出。

实时文本

澄清

此txt文件会在整个过程中不断更新,因为它存储了控制台输出。我的shell脚本包含一些“重”程序,因此控制台输出非常冗长,并且txt文件需要一些时间来生成(可能延迟3~5秒)。

问题:有时我会得到不完整的txt文件,它只包含最终txt文件的一小部分。 (它应该在wget命令之前获得所有内容)而且有趣的是,我下载的大多数不完整的txt文件都停留在第9999行。我不知道这是否是限制,但它似乎如果控制台输出低于5k行,则没问题。

问题:有没有办法让wget等待特定时间?

P.S。我知道-T有超时选项wget,默认值为900秒。但我的问题与缓慢的连接无关,而是生成文件的延迟。

1 个答案:

答案 0 :(得分:0)

如果此wget语句正在运行作为生成输出的脚本的一部分,那么您可能遇到某种输出缓冲问题...即,因为脚本尚未退出,输出尚未刷新。

你如何重定向输出?一种方法是将子wget语句以外的所有内容包装在子shell中,并重定向的输出

#!/bin/sh

(
  a bunch
  of commands
) > output 2>&1

wget -q $URL ...

这确保其他命令在wget运行时已完成且包含的shell已退出