一.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 流程控制语句的更多相关文章

  1. linux shell awk 流程控制语句(if,for,while,do)详细介绍

    在linux awk的 while.do-while和for语句中允许使用break,continue语句来控制流程走向,也允许使用exit这样的语句来退出.break中断当前正在执行的循环并跳到循环 ...

  2. linux shell 之流程控制 if if else while

    (1)流程控制不可以为空: (2)if [ $(ps -ef | grep -c "ssh") -gt 1 ]; then echo "true"; fi 条件 ...

  3. Linux shell awk逻辑控制语句

    awk逻辑控制语句 1,if...else 格式: if(条件){语句:语句} else {语句1:语句2} 如果statement只有一条语句,{}可以不写 以冒号为分隔符,判断第一个字段,如果为r ...

  4. Linux中的流程控制语句

    if语句 if [ 条件判断式 ] then 程序elif [ 条件判断式 ] then 程序else 程序fi 注意: a.使用fi结尾 b.条件判断式和中括号之间需要有空格 [root@local ...

  5. linux shell编程流程控制

    条件选择 单分支条件 多分支条件 选择执行if语句 单分支 if 判断条件;then 条件为真的分支代码 fi 双分支 if 判断条件; then 条件为真的分支代码 else 条件为假的分支代码 f ...

  6. 【转】Awk 命令学习总结、AWk命令系列学习(linux shell)

    前面的话 学习linux 的同人,都知道linux shell文本处理能力非常强大.有一组强大的文本处理工具:grep,sed,awk . 其中grep 经常用作查找匹配文本.sed用作文本编辑替换. ...

  7. Awk 命令学习总结、AWk命令系列学习(linux shell)

    AWK基本语法 下面没有提到awk命令怎么使用了,你可以通过 运行:awk –h 查询到所有命令及参数!下面把awk作为一门语言分节介绍. linux awk 内置变量使用介绍   awk语言中,怎么 ...

  8. linux shell 流程控制(条件if,循环【for,while】,选择【case】语句实例 --转载

    http://www.cnblogs.com/chengmo/archive/2010/10/14/1851434.html nux shell有一套自己的流程控制语句,其中包括条件语句(if),循环 ...

  9. shell流程控制语句

    linux shell有一套自己的流程控制语句,其中包括条件语句(if),循环语句(for,while,until),选择语句(case/select).下面我将通过例子介绍下,各个语句使用方法. 1 ...

随机推荐

  1. AutoTransformHandler

    public static ObservableCollection<F> Transform<T, F>(List<T> target) where F : ne ...

  2. IE11之F12 Developer Tools--DOM Explorer

    使用DOM Explorer工具查看网页的DOM状态.检查HTML结构和CSS样式,并测试更改以解决显示问题.这可以在元素位置错误或行为异常时帮助你诊断问题,然后解决问题. DOM Explorer图 ...

  3. KTV点歌系统

    经过十多天的艰苦奋战,MyKTV点歌系统终于成型,从刚开始接到项目的茫然,到完成项目时的喜悦,整个过程的艰辛和付出只有自己知道.虽然这个项目还有许多需要完善的地方,譬如添加歌词信息,实现窗体的美化等, ...

  4. [moka同学笔记]Yii2.0 dropDownList的使用(二)

    方法一: <?php $psObjs = Poststatus::find()->all(); $allStatus = ArrayHelper::map($psObjs,'id','na ...

  5. mysql备份方法

    在用PHP或者其他web脚本语言构架的应用系统中,数据库大部分是mysql其中就牵扯到了一个数据库日常备份导出等问题,大概有以下几种情况: 1.如果应用用的是开源的产品,如dz.pw和其他cms等一般 ...

  6. Java多线程--wait(),notify(),notifyAll()的用法

    忙等待没有对运行等待线程的 CPU 进行有效的利用(而且忙等待消耗cpu过于恐怖,请慎用),除非平均等待时间非常短.否则,让等待线程进入睡眠或者非运行状态更为明智,直到它接收到它等待的信号. Java ...

  7. winform里面网页显示指定内容

    今天有个同事问了一下我,怎么在winform里面打开网页啊?我们都是基于C/S的开发,很少接触winform,所以我当时就懵了,实在不知道怎么回答,所以索性说不知道.但是我又想了想,这个应该是个很简单 ...

  8. require

      /* require.js框架 RequireJS 2.1.11 Copyright (c) 2010-2014, The Dojo Foundation All Rights Reserved. ...

  9. Exchange 2013 申请证书

    最近在了解Exchange2013,Exchange2013相对于Lync安装相对容易一点,安装完成并不代表就可以用了,还要一些基本的配制,首先介绍一下如何从证书服务器申请 CA. 一.DNS 创建解 ...

  10. [原创]winform_PC宴会图片抽奖/文字抽奖

    14年6月 好友结婚 14年4月左右知道他们婚礼由迎宾照抽奖的环节 问我有没有可以用的抽奖软件 我网上找了一会儿,就放弃了,自己做一个更快不是? 14年6月,PC宴会图片抽奖软件成功使用 --- 操作 ...