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