2012-11-14 155 views
0

我有這條線在我的bash腳本的末尾:的wget:下載LIVE txt文件

wget -q $URL -Y off 

其中URL是路徑到包含控制檯輸出爲我的bash腳本LIVE txt文件。

LIVE txt文件澄清

這個txt文件一起保存過程中更新,因爲它存儲控制檯輸出。我的shell腳本包含一些「重」程序,所以控制檯輸出非常冗長,txt文件需要一些時間才能生成(可能需要3〜5秒的延遲)。

問題:有時我得到不完整的txt文件,其中只包含最後一個txt文件的一小部分。 (預計會得到wget命令之前的所有內容)足夠有趣的是,我下載的大多數不完整的txt文件都卡在了9999行。我不知道這是否是限制,但如果控制檯輸出低於5k線。

問題:有沒有辦法讓wget等待一個特定的時間?

p.s.我知道wget有一個超時選項-T,默認值爲900秒。但是我的問題與慢速連接無關,而是與生成文件的延遲有關。

回答

0

如果wget語句運行正在生成的輸出腳本的一部分,你可能遇到了某種輸出緩衝問題的......就是因爲劇本還沒有退出,輸出有尚未被刷新。

你如何重定向輸出?一種方法是包裝比wget聲明其他一切都在一個子shell和重定向輸出

#!/bin/sh 

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

wget -q $URL ... 

這確保了其他命令已完成和含殼體具有時間退出運行wget

+0

非常感謝您的回覆!是的,'wget'是生成輸出的腳本的一部分,輸出是txt文件,我將它保存到本地存儲。是否有另一種方法來存檔這個沒有包裝一切? –