在bash有三中类型的循环结构表达方法:for,while,until。这里介绍常用的两种:for和while。

for

bash的for循环表达式和python的for循环表达式风格很像:

for var in $(ls)
do
  echo "$var"done

取值列表有很多种表达方式,可以结合各种命令比如 ls,cat,sed等等

也可以是各种迭代类型,比如:

{1..100..2}: 1到100增量为2

{a..z}: a到z的字母

`seq 1 2 100`: 1到100增量为2

while

bash的while循环表达式和bash的if表达式风格类似,循环条件需要用方括号 []:

COUNTER=
while [ $COUNTER -lt ]
do
echo "$COUNTER"
let COUNTER+=
done

while和重定向联用

输出重定向'>'比较好理解,就是将while后面的命令以及循环体中的标准输出重定向,例如

while seq      #注意这里直接写命令就行,不需要``或者[]
do
echo "ok"
sleep #这个循环是个无限循环,加sleep为了查看结果
done>test.tx
$cat test.txt

ok

注意,这里的重定向不仅打印结构体中的标准输出,而且也打印命令的输出。

输入重定向是把文件重定向到while后面的命令中,类似于管道(pipe)

while grep ""
do
echo "This line contains 1" done<test.txt

利用刚刚生成的test.txt文件,运行上述脚本的结果为:

可以看出,虽然有两行包含字符“1”,但是结构体里的echo语句只执行了一次,这说明只要while后面的命令有输出,那么就执行结构体一次,所以这和cat | grep也没什么区别了。

当然也可以输入输出重定向一起使用,比如上面的例子可以改为:

while grep ""
do
echo "This line contains 1"
done<test.txt>result.txt

最新文章

  1. [转]看部电影,透透彻彻理解IoC(你没有理由再迷惑!)
  2. mysql 笔记
  3. [C#对sql操作]C#对sql server 2008数据库操作
  4. Java虚拟机详解----JVM常见问题总结
  5. c#泛型方法返回null的问题
  6. [Reprint] C++函数模板与类模板实例解析
  7. 20151221jquery学习笔记--验证插件
  8. JBOSS尝鲜
  9. python升级导致的坑
  10. css3特效详解
  11. Win7-64位+Oracle11.2g+使用PLSQL_Developer 的解决办法
  12. tomcat Win10 配置环境变量详解
  13. POJ1180 Batch Scheduling -斜率优化DP
  14. python的面对对象
  15. storm0.9.0.1升级安装
  16. ffmpeg h264+ts +(sdl)显示方式
  17. Xcode/iOS: 如何判断代码运行在DEBUG还是RELEASE模式下?
  18. PAT——1068. 万绿丛中一点红
  19. django自强学堂地址
  20. shell (3) 磁盘挂载

热门文章

  1. svn报错:privious operation has not finshed;run &#39;cleanup&#39; if it was interrupted
  2. bzoj 1597: [Usaco2008 Mar]土地购买【斜率优化】
  3. SGU 176 Flow construction【有上下界最小流】
  4. USACO Training3.3 A Game【区间Dp】 By cellur925
  5. java数组实现买彩票(重复则重新遍历查询思想)
  6. [转]访问 OData 服务 (WCF Data Services)
  7. .net 字符串和JSON格式的互换
  8. Swiper插件轮播
  9. Android Studio 导入新工程项目
  10. xmind8 Mac破解版(思维导图) 附序列号