我有文件的URL列表,我想下載它們:管道下載和處理文件在Unix/Linux操作系統環境下使用Perl
http://somedomain.com/foo1.gz
http://somedomain.com/foo2.gz
http://somedomain.com/foo3.gz
我想要做的就是爲每個文件如下:
- 下載foo1.2 ..與
wget
和nohup
並行。 - 每次完成下載過程將它們與
myscript.sh
我有什麼時候是這樣的:
#! /usr/bin/perl
@files = glob("foo*.gz");
foreach $file (@files) {
my $downurls = "http://somedomain.com/".$file;
system("nohup wget $file &");
system("./myscript.sh $file >> output.txt");
}
的問題是,不將文件下載完畢時,我不能告訴上面的管道。 所以現在它myscript.sh不能正確執行。
什麼是實現這一目標的正確途徑?
內部循環取自請求的例子,我建議檢查系統調用的返回值,以確保命令執行正確。你必須右移8才能獲得shell退出代碼。 if((system(「command」)>> 8)== 0){...} – kbenson 2010-04-16 16:50:30