Bash, 短時間等待,重複執行某個命令

wget:有時候下載,只是前1分鐘有數據傳輸,之後便是無響應。爲了利用這個突發傳輸,增加請求的頻率,可以編寫腳本,也可以使用wget -T 20 -c url,20秒等待,缺省是900秒。

腳本如下,雖然可以用wget的T參數替代,但方法可以借鑑。

for i in {1..4};do
  echo $i
  wget -c url &
  sleep 60
  j=$(ps -a | grep -ir wget )    #返回wget的PID
  if [ "$j" != "" ] ;then
     set $j        #提取PID
     kill $1       #定時關閉wget
  else
     echo "No wget running"     
  fi 
done

 

下載某個網頁中300多鏈接文件

IFS="
"         
for i in $(grep -ir  "/.asc"  htmlsourcefile ) ; do  #以換行符斷句,獲得包含下載文件的語句,
  echo $i
  j=${i##*href=/"}                                        #獲得路徑
 
  n=http://www.url.com${j%%/"*}       #加前綴
  o=${n##*/}                                 #獲得鏈接文件名,該名與實際文件名可能不同
  echo n $n
  echo o $o
  k=${i##*/"/>}                    #提取實際文件名
  l=${k%%/<*}                   #提取實際文件名
 
  echo l $l
  wget -T 20 $n
  mv $o $l   #將鏈接文件名改爲實際文件名
done

 

 

這是htmlsourcefile片段

發佈了36 篇原創文章 · 獲贊 0 · 訪問量 14萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章