编写简单的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脚本中for循环while循环及case分支语句