编写简单的shell脚本 - for循环 - 解决报错 Syntax error: Bad for loop variable

Posted 素还真1990

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编写简单的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 , 会计算出脚本执行的时间。

 

以上是关于编写简单的shell脚本 - for循环 - 解决报错 Syntax error: Bad for loop variable的主要内容,如果未能解决你的问题,请参考以下文章

Shell脚本-循环语句

浅谈Shell脚本中for循环while循环及case分支语句

Shell脚本之forwhile循环语句和case分支语句

Shell基础:使用for循环结构使用while循环结构基于case分支编写脚本使用Shell函数中断及退出

Linux系统shell脚本for循环实战之目录权限

Shell脚本关于循环的一些总结