0

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

wget -q $URL -Y off

包含我的 bash 脚本的控制台输出的LIVEURL txt 文件的路径在哪里。

LIVE txt 文件说明

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

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

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

ps 我知道有一个超时选项-Twget默认为 900 秒。但我的问题与慢速连接无关,而是与生成文件的延迟有关。

4

1 回答 1

0

如果此wget语句作为生成输出的脚本的一部分运行,您可能会遇到某种输出缓冲问题……也就是说,由于脚本尚未退出,因此尚未刷新输出。

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

#!/bin/sh

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

wget -q $URL ...

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

于 2012-11-14T17:58:06.163 回答