Linux Shell 02 流程控制语句
一.if语句格式:支持if/elif/else形式,支持嵌套
1. command执行成功(及退出状态为0)时,执行command2
2. 当判断条件为test命令时,判断结果为true时,执行command2
- if command; then
- command1
else
command2- fi
- if command
- then
- command
- fi
二. for语句格式
- for var in list
- do
- command
- done
1.读取列表中得值
a.列表中的值默认以空格分隔,
b.当值中包含单引号需要转义或者使用双引号
c.值中包含空格,需使用双引号括起来
- for var in I\'m come from Nanjing and I want go to "New York", I can\'t say France
- do
- echo $var
- done
2. 从变量读取列表
- list="AAA BBB CCC"
- list=$list" CCC" #字符串追加内容
- for var in list
- do
- echo $var
- done
3. 读取命令中得值
- for var in `cat /etc/passwd`
- do
- echo $var
- done
4. 字段分隔符
在3的示例中,内容并不是按行输出的,因为在shell中将【空格/制表符/换行符】看做字段分隔符
在上例中如果希望内容按行输出,则需要修改字段分隔符
- IFS.OLD=$IFS
- IFS=$'\n'
- for var in `cat /etc/passwd`
- do
- echo $var
- done
- IFS=$IFS.OLD
三.while语句
- #while命令中test command的格式和if语句相同
- while test command
- do
- command
- done
1.while的测试语句结果为真或者命令退出状态为0的时候,循环会一直进行下去,通常需要在循环体内改变test的结果
2.while的测试语句可以写多条命令,以最后一条命令的结果为判断依据。
3.while的测试语句比循环体内的语句多执行一次(即最后判断失败的那一次)
- var1=
- while echo $var1
- [ $var -ge ]
- do
- echo "Now in loop"
- var1=$[ $var1 - ]
- done
四.until语句
- # until命令的执行方式与while正好相反,当测试结果为假或者命令退出状态非0时,循环继续
# until的测试语句中也可以写多条命令
until test command- do
- command
- done
五.continue和break语句
1.break 跳出循环
a.可以用在for/while/until语句中
b. break终止当前循环
c. "break n"终止指定层循环,n=1代表当前循环,n=2代表当前循环的上一层循环
2.continue 跳过本次循环继续循环
a.用法与break基本相同
b.确保continue不会跳过对循环判断条件的改变,否则会造成死循环
六. 循环的输出
可以在done关键字的末尾使用管道或者重定向来处理循环体内的输出
- #重定向
- for file in ~
- do
- if [ -d $file]
- then
- echo "$file is directory"
- else
- echo "$file is file"
- fi
- done > out.txt
- #管道
- for user in `cat /etc/passwd`
- do
- echo $user
- done | sort
Linux Shell 02 流程控制语句的更多相关文章
- linux shell awk 流程控制语句(if,for,while,do)详细介绍
在linux awk的 while.do-while和for语句中允许使用break,continue语句来控制流程走向,也允许使用exit这样的语句来退出.break中断当前正在执行的循环并跳到循环 ...
- linux shell 之流程控制 if if else while
(1)流程控制不可以为空: (2)if [ $(ps -ef | grep -c "ssh") -gt 1 ]; then echo "true"; fi 条件 ...
- Linux shell awk逻辑控制语句
awk逻辑控制语句 1,if...else 格式: if(条件){语句:语句} else {语句1:语句2} 如果statement只有一条语句,{}可以不写 以冒号为分隔符,判断第一个字段,如果为r ...
- Linux中的流程控制语句
if语句 if [ 条件判断式 ] then 程序elif [ 条件判断式 ] then 程序else 程序fi 注意: a.使用fi结尾 b.条件判断式和中括号之间需要有空格 [root@local ...
- linux shell编程流程控制
条件选择 单分支条件 多分支条件 选择执行if语句 单分支 if 判断条件;then 条件为真的分支代码 fi 双分支 if 判断条件; then 条件为真的分支代码 else 条件为假的分支代码 f ...
- 【转】Awk 命令学习总结、AWk命令系列学习(linux shell)
前面的话 学习linux 的同人,都知道linux shell文本处理能力非常强大.有一组强大的文本处理工具:grep,sed,awk . 其中grep 经常用作查找匹配文本.sed用作文本编辑替换. ...
- Awk 命令学习总结、AWk命令系列学习(linux shell)
AWK基本语法 下面没有提到awk命令怎么使用了,你可以通过 运行:awk –h 查询到所有命令及参数!下面把awk作为一门语言分节介绍. linux awk 内置变量使用介绍 awk语言中,怎么 ...
- linux shell 流程控制(条件if,循环【for,while】,选择【case】语句实例 --转载
http://www.cnblogs.com/chengmo/archive/2010/10/14/1851434.html nux shell有一套自己的流程控制语句,其中包括条件语句(if),循环 ...
- shell流程控制语句
linux shell有一套自己的流程控制语句,其中包括条件语句(if),循环语句(for,while,until),选择语句(case/select).下面我将通过例子介绍下,各个语句使用方法. 1 ...
随机推荐
- QCustomplot使用分享(一) 能做什么事
一.QCustomPlot简介 之前在Qt之自绘制饼图这篇文章的说明中我简单的描述了下目前依赖于qt的第三方绘图库,此后我会针对自己使用QCustomPlot的情况做一总结,以方便大家参考 QCust ...
- Python+Selenium进行UI自动化测试项目中,常用的小技巧2:读取配置文件(configparser,.ini文件)
在自动化测试项目中,可能会碰到一些经常使用的但 很少变化的配置信息,下面就来介绍使用configparser来读取配置信息config.ini 读取的信息(config.ini)如下: [config ...
- 使用Eclipse Installer安装Eclipse
由于一些原因,需要重新安装Eclipse,登陆到Eclipse官网下载Eclipse时发现社区又推出了Eclipse Installer.所以就下下来尝尝鲜. 刚开始确实有些选项不太明白,不过现在挺喜 ...
- 常用jsp include用法,三种include的区别
<@ include file=””> :静态导入,jsp指令,同一个request , <jsp:include page=”” flush=””>:动作元素,不同一个req ...
- ssh 客户端远程vi文本文件中文乱码(亲测)
由于是生产环境,且非笔者控制,为了避免影响系统全局,仅对本session有效 export LANG="zh_CN.UTF-8"export LANG="zh_CN.GB ...
- 为什么要选择Sublime Text3?
为什么要选择Sublime Text3? Sublime Text3 自动保存,打开图片 跨平台启动快!!!!多行游标,太好用. 插件,简直选不过来. 代码片段 VIM兼容模式 菜单栏基础功能介绍 F ...
- ASP.NET MVC中将数据从Controller传递到视图
ASP.NET MVC中将数据从Controller传递到视图方法 1.ViewData ViewData的类型是字典数据,key-value 如:ViewData["Data"] ...
- SAP debug的几种方式
1. 直接在程序中设断点 这种方式想必大家都知道了,在se38里面打上breakpoint,程序运行到该处即进入debug模式 2.background Job的debug 进入SM37 ...
- Arcengine实现创建网络数据集札记(二)
四 ArcEngine实现创建网络数据集 ArcEngine创建网络数据集的过程,与ArcMap设置的过程类似,主要通过六个步骤即可以实现. 1 定义网络数据集对象,并设置基本属性,包括网络数据集名称 ...
- 安卓开发_浅谈Android动画(一)
动画效果,针对图片实现 现在学习四种基本的简单动画效果 一.Tween Animation共同属性 1.Duration:动画持续时间(毫秒单位) 2.fillAfter:设置为true,动画转化在动 ...