Bash的循环结构(for和while)
在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

Bash的循环结构(for和while)的更多相关文章
- 玩转Bash脚本:循环结构之while循环(转)
转自:http://blog.csdn.net/guodongxiaren/article/details/43341769 总第8篇 本系列(玩转Bash脚本)更多文章,请访问:http://b ...
- Bash脚本编程学习笔记07:循环结构体
本篇中涉及到算术运算,使用了$[]这种我未在官方手册中见到的用法,但是确实可用的,在此前的博文<Bash脚本编程学习笔记03:算术运算>中我有说明不要使用,不过自己忘记了.大家还是尽量使用 ...
- bash中选择结构、循环结构与break、continue
if两种选择结构 if 测试条件; then 程序块 else 程序块 fi if 测试条件1; then 程序块 elif 测试条件2; then 程序块 ... elif 程序条件n; then ...
- shell的编程结构体(函数、条件结构、循环结构)
bash&shell系列文章:http://www.cnblogs.com/f-ck-need-u/p/7048359.html 1.1 shell函数 在shell中,函数可以被当作命令一样 ...
- shell脚本--循环结构
shell的循环结构有while和for两种 for循环 #!/bin/bash #文件名:test.sh i=4 for i in 2 4 6 8 10 do echo $i done echo $ ...
- shell条件控制和循环结构
一.简介 Shell编程中循环命令用于特定条件下决定某些语句重复执行的控制方式,有三种常用的循环语句:for.while和until.while循环和for循环属于“当型循环”,而until属于“直到 ...
- LinuxShell脚本——循环结构
LinuxShell脚本——循环结构 摘要:本文主要学习了Shell脚本中的循环结构. while循环 基本语法 while循环是最简单的一种循环,如果条件满足则执行循环里的语句,如果条件不满足则退出 ...
- Linux shell for循环结构
Linux Shell for循环结构 循环结构 1:循环开始条件 2:循环操作 3:循环终止的条件 shell语言 for,while ...
- Shell基础(三):使用for循环结构、使用while循环结构、基于case分支编写脚本、使用Shell函数、中断及退出
一.使用for循环结构 目标: 本案例要求编写一个Shell脚本chkhosts.sh,利用for循环来检测多个主机的存活状态,相关要求及说明如下: 1> 对192.168.4.0/24网段执行 ...
随机推荐
- 项目迁移腾讯云后,用户反馈,https证书不匹配。
腾讯云大禹高防大禹BGP同一IP绑定多个证书,用户反馈无法匹配我们域名对应证书.但是浏览器是支持的.定位为客户端不支持sni在运维检查lb及高防证书关联无误,定位发现是用户端httpclient没有设 ...
- [Usaco2017 Feb]Why Did the Cow Cross the Road I (Gold)
Description 有一幅n*n的方格图,n <=100,每个点上有一个值. 从(1,1)出发,走到(n,n),只能走上下左右. 每走一步花费t,每走三步需要花费走完三步后到达格子的值. 求 ...
- hihoOffer收割练习20题目2
题目2 : SCI表示法 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 每一个正整数 N 都能表示成若干个连续正整数的和,例如10可以表示成1+2+3+4,15可以表示 ...
- Android上的线程安全
Thread-safe methods In some situations, the methods you implement might be called from more than one ...
- xUtils 简介
## xUtils简介* xUtils 包含了很多实用的android工具.* xUtils 最初源于Afinal框架,进行了大量重构,使得xUtils支持大文件上传,更全面的http请求协议支持(1 ...
- 关于OPPO手机的生存和程序员的发展
关于程序员私下讨论最多的话题,除了哪个编程最牛逼之外,哪款品牌的手机最牛逼也是我们谈论最多的话题之一吧!有的喜欢罗永浩,自然就是锤粉:有的喜欢苹果,称它为工业时代最优美的艺术品:当然,我想也有很多的人 ...
- Spring注解驱动开发之web
前言:现今SpringBoot.SpringCloud技术非常火热,作为Spring之上的框架,他们大量使用到了Spring的一些底层注解.原理,比如@Conditional.@Import.@Ena ...
- 在action中将字符串、对象、list集合保存到值栈中,在jsp页面中获取的方法
转自:csdn 封装对象User,属性有id,username,email等1.1:在action中将字符串保存到值栈中 1.1.1 获取值栈对象 ValueStack stack ...
- pythno学习小结-替换python字典中的key值
源: d={'a':1,'b':2,'c':3} 目标:key:'b'替换为'e' d={'a':1,'e':2,'c':3} 方法: d['e']=d.pop('b')
- eclipse自动为变量生成Get/Set函数
启动Eclipse,打开demo工程.如图: 假定为成员变量test生成Get/Set函数. 光标定位到该成员变量,如图: 右键选择“source”-“Generate Getters and ...