shell腳本 - for循環 -多進程- 解決報錯 Syntax error: Bad for loop variable


 

為了編寫批量導入數據的程序,故而學習編寫shell腳本!現學現用!

============================================

 

1、第一個簡單的for循環

#!/bin/bash
for i in 1 2 3 4;
do
  echo $i;
done

 

 

2、測試for的自增長的循環:

#!/bin/bash
for ((i=1; i<=5; i++))
do
  echo $i;
done

如果會報錯,沒有則跳過:

Syntax error: Bad for loop variable

原因:代碼對於標准bash而言沒有錯,因為Ubuntu為了加快開機速度,用dash代替了傳統的bash,是dash在搗鬼。

解決方法:取消dash

dpkg-reconfigure dash  

出現彈框,選擇NO

參考原文詳情,解決報錯:

http://blog.csdn.net/yf210yf/article/details/9206185

 

 

3、實戰:批量執行php文件 - 單進程

#!/bin/bash
for ((i=1; i<=1000; i++))
do
  echo `curl http://localhost/add.php?page=$i &`;    
done

// 使用echo可以看到輸出結果,下圖中“add-end-0”為我的test.php程序運行完一次的輸出結果

 

 

4、進階:多進程!!!

#!/bin/bash
for ((i=1; i<=1000; i++))
do
{
  echo `curl http://localhost/add.php?page=$i &`;
}&      ## 重點:添加了 & ,將for循環里的執行語句,集合起來!!!
done
wait     ## 重點:最后加個wait,手機號執行語句后,一塊執行!!!

關於更多多進程詳解,參看:

http://www.jb51.net/article/116952.htm

================================

實行:

time bash test.sh    ## 重點:最后執行的時候,加個 time , 會計算出腳本執行的時間。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM