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

for

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

for var in $(ls)
doecho "$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=0
while [ $COUNTER -lt 10]
doecho "$COUNTER"let COUNTER+=1
done

while和重定向联用

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

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

$cat test.txt
0
1
2
3
4
5
6
7
8
9
10
ok

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

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

while grep "1"
do      echo "This line contains 1"

done<test.txt

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

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

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

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

转载于:https://www.cnblogs.com/liuyihua1992/p/9689295.html

Bash的循环结构(for和while)相关推荐

  1. 通过shell例子来学习循环结构的语法

    心得: 所谓有用就是学会了一直在使用,不经常用叫没多大用,忘记了就叫没用.反过来想想经常挨领导批的很有可能是领导对你有很大的期望.所以我们学会的东西要经常用到实际中去才是自己的东西. 其实学习的最好方 ...

  2. bash for循环_Bash 中的 For 循环

    循环是编程语言的基本概念之一.当你想要一遍又一遍地运行一系列命令直到达到某个条件后终止退出时,循环很方便. 在诸如 Bash 之类的脚本语言中,循环对于自动执行重复性任务非常有用. 在 Bash 脚本 ...

  3. linux设置程序循环,linux shell编程学习笔记(7)流程控制之循环结构

    2.1.for循环 1)遍历/列表式循环 --根据变量的不同取值,重复执行命令序列 格式: for  变量名  in 值列表 do 命令序列 done 示例:输出在线的主机IP #!/bin/bash ...

  4. Linux 使用for循环结构

    1.使用for循环结构 问题 本案例要求编写一个Shell脚本chkhosts.sh,利用for循环来检测多个主机的存活状态,相关要求及说明如下: 待检测的多个目标IP地址,存放在ipadds.tx ...

  5. c语言for循环笔记,【学习笔记】【C语言】循环结构-for

    1.使用: for (语句1; 条件; 语句2) { 循环体 } 语句1:初始化语句 语句2:增量语句(执行完循环体后再执行的语句) 1.for一开始就会执行一次语句1(整个for循环只会执行一次) ...

  6. Bash for 循环使用方法

    for循环是Linux shell中最常用的结构. for 循环有三种结构:一种结构是列表for循环:第二种结构是不带列表for循环:第三种结构是类C风格的for循环. 本篇博文重点看列表for循环, ...

  7. 3.分支结构与循环结构

    1 程序结构 程序结构分为顺序结构.分支结构.循环结构.分支结构有:if结构,if....else结构,if...else if....else ,if...else结构,switch结构:循环结构有 ...

  8. Java程序流程控制(顺序结构、分支结构、循环结构、if-else、switch-case、for、while、do-while、break、continue、return)

    流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块. 其流程控制方式采用结构化程序设计中规定的三种基本流程结构,即:         顺序结构         ...

  9. 06JavaScript中的流程控制之循环结构

    技术交流QQ群:1027579432,欢迎你的加入! 1.循环结构 循环的目的:在实际问题中,有很多规律性的重复操作.因此,在程序中要完成这类操作,就需要重复执行某些语句. 2.JS中的循环 在JS中 ...

最新文章

  1. 分享一个电视节目API接口PHP调用代码
  2. 安全模式怎么更改计算机用户,台式电脑怎么进入安全模式?电脑安全模式有什么用?...
  3. 软件分享:将应用一键打包成dmg文件
  4. Jenkins配置jdk(启动报错:Starting Jenkins bash: /usr/bin/java: No such file or directory)
  5. C++代码片段(二)判断可变模板参数中是否包含某一特定类型
  6. JdbcTemplate+PageImpl实现多表分页查询
  7. 24、jdbc操作数据库(1)
  8. pyspider爬虫框架
  9. 用计算机怎么打出狂浪字谱,狂浪歌曲简谱
  10. div跳转html页面底部,即使没有内容,如何强制DIV块扩展到页面底部?
  11. python 爬取网页内容 snmp_python通过SNMP协议收集服务器监控信息
  12. ecshop最全去版权
  13. Maven自定义配置生成包名
  14. bios sgx需要开启吗_惠普HP笔记本预装win8改装成win7系统BIOS设置与安装方法
  15. 漫画|前端江湖恩仇录始末
  16. C语言 PTA 新年倒计时
  17. 手写一个词云图生成器,可调形状,可调背景颜色,可调字体色系
  18. Oracle常用sql语法手册
  19. java 汉字转拼音_java中将汉字转换成拼音的实现代码
  20. one 主格 复数 宾格_主格和宾格的复数形式到底怎么写请说出答案

热门文章

  1. linux zk集群,linux ZooKeeper集群安装
  2. 最小树形图+朱刘算法
  3. 图论--LCA--在线RMQ ST
  4. 理解奈奎斯特定理和香农定理
  5. 硬件工程师电路设计必须紧记的十大要点
  6. 在mac OSX中安装启动zookeeper
  7. Linux xargs命令
  8. Python函数式编程简介(一)高阶函数
  9. 深度学习术语_您应该意识到这些(通用)深度学习术语和术语
  10. 使用composer_在Google Cloud Composer(Airflow)上使用Selenium搜寻网页