1  )单分支if语句

if 测试条件 ;then

如果满足条件就执行这里的代码

f

2)双分支的if语句

if  测试条件;then

如果满足条件就执行这里的代码

else

如果不满足条件就执行这里的 代码

fi

3)  read命令:通过键盘输入数据,将键盘输入的值传递给脚本的中定义的变量,从而完成变量赋值操作 。脚本中使用read命令可以使得用户能够与程序进行交互
 read命令的使用格式

# 这里变量名的意义在于将用户输入的值传递给这个变量名,那么在脚本中我们就可以拿到用户输入的值了
read [选项] [变量名]

选项:
    -p (promp):在用户在键盘输入数据时,指定显示提示符
    -t(timeout):指定超时时间,如果用户在指定的超时时间都没有输入的话,那么就终止脚本的执行

4)   在运行脚本前,我们一般先对脚本的语法进行检查,如果脚本有bug,我们再调试脚本
    语法检查

bash -n 脚本路径

脚本调试

bash -x 脚本路径

(2)过程式编程语言的执行流程

顺序执行
选择执行
循环执行

选择执行

(1)&&,||  
    command1 && command2:如果command1正确,也执行command2;如果command1不正确,不执行command2
    command1 || command2:如果command1正确,不执行command2;如果command1不正确,执行command2

(2)if语句
    if语句:三种格式
    我们之前已经学习了单分支的if语句
    接下来学习if多分支和if嵌套语句

(3)case语句

if嵌套语句格式

if [ 条件 ];then
    if [ 条件 ];then
        执行这里的代码
    fi
fi

if [ 条件 ];then
    if [ 条件 ];then
        执行这里的代码
    fi
else
    if [ 条件 ];then
        执行这里的代码
    fi
fi

if 多分支语句格式(注意:多个分支只会执行一个,执行首先为真的分支)

if  [ 条件1 ];then
        条件1为真执行这里的代码
elif [ 条件2 ];then
        条件2为真执行这里的代码
elif [ 条件3 ];then
        条件3为真执行这里的代码
.
.
.

elif [ 条件n ];then
        条件n为真执行这里的代码
else
        如果所有的条件都不满足时,执行这里的代码
fi

注意:多个分支只会执行一个,执行首先为真的分支

循环语句

前言:循环就是将一段代码重复执行0,1次或多次。
进入条件:条件满足时,需要进入循环
退出条件:每个循环都应该有退出条件,有机会退出循环
bash的循环分类:

for循环
    while循环
    until循环

for循环有两种格式 (重点必须掌握)
        第一种格式:遍历列表 (重点必须掌握)
        第二种格式:控制变量 (重点必须掌握)
    变量列表

for 变量 in 列表; do
    循环体
done

进入条件:只要列表中有元素,即可进入循环
退出循环:列表中的元素遍历完成

while循环 (重点必须掌握)

while CONDITION ; do
    循环体
    循环控制变量的修正表达式
    done
    进入条件:CONDITION测试为“真”
    退出条件:CONDITION测试为“假”

until循环 (非重点了解即可)

until CONDITION ; do
    循环体
    循环控制变量
    done
    进入条件:CONDITION测试为“假”
    退出条件:CONDITION测试为“真”

死循环

前言:continue、break、sleep命令、死循环,在循环语句中扮演了重要的角色,他们可以控制整个循环的执行过程
continue:跳出本次循环,进入下一轮循环
break:跳出整个循环
sleep:程序睡眠一个时间段
死循环:条件为true,永远为死循环

continue语句格式

while  [ 条件1 ]; do
    满足条件执行这里的代码
    if [ 条件2 ]; then
        # 跳出当前循环进入下一轮循环
        continue
    fi
    满足条件执行这里的代码
done

break :直接跳出整个循环

while [条件1]; do
    执行这里的代码
    if [条件2]; then
        break
    fi
    执行这里的代码
done

sleep命令
    示例:每隔3秒钟到系统上获取已经登入的用户的信息,其中,如果sb用户登入了系统,则给QQ发送邮件,主题为“sb user is login”,并退出

先修改/etc/mail.rc文件
set from=yinhuanyi_cn@163.com smtp=smtp.163.com
set smtp-auth-user=yinhuanyi_cn@163.com smtp-auth-password=yhy3426356
set smtp-auth=login

while true; do
    sleep 3
    if who | grep logstash &>/dev/null;then
        echo "sb user is login" | mail -s 'somebody login' 307443272@qq.com
        break
    fi
done

while循环的特殊用法(遍历文件的行)

while read VARIABLE;do
    循环体
done < /PATH/TO/FILE

意思是:依次读取/PATH/TO/FILE文件中的每一行,且将其赋值给VARIABLE变量

bash循环语句的更多相关文章

  1. bash 编程中循环语句用法

    1.if 是单分支语句,使用格式如下: if condition ; then statement ….. fi 2.if … else 是双分支语句,使用格式如下: if condition ; t ...

  2. 循环语句for,while,until,select

    循环 *循环执行 将某代码段重复运行多次 重复运行多少次: 循环次数事先已知 循环次数事先未知 有进入条件和退出条件 *常见的循环语句有for,while,until for循环 for 变量名 n ...

  3. shell编程基础(二): shell脚本语法之分支语句和循环语句

    一.分支语句 1.条件测试:test [ 命令test或[可以测试一个条件是否成立,如果测试结果为真,则该命令的Exit Status为0,如果测试结果为假,则命令的Exit Status为1(注意与 ...

  4. Shell脚本应用(for、while循环语句和case分支语句)

    1.for:读取不同的变量值,逐个执行同一组命令,直到取值完毕退出,变量值以空格分隔 语法: for  变量值  in  取值列表 do 命令序列 done 2.while:重复测试某个条件,成立则执 ...

  5. Shell编程-08-Shell中的循环语句

    目录 while语句 until语句 for语句 select语句 循环中断控制 循环语句总结     循环语句常用于重复执行一条命令或一组命令等,直到达到结束条件后,则终止执行.在Shell中常见的 ...

  6. shell基础(八)-循环语句

    国庆过后:感觉有点慵懒些了:接着上篇:我们继续来学习循环语句. 一. for循环 与其他编程语言类似,Shell支持for循环. for循环一般格式为: for 变量 in 列表 do command ...

  7. 1-24-case流程控制和while循环语句的使用

    大纲: 1.while循环控制语句 while实战---批量添加规则用户 while实战---猜价格游戏 2.case流程控制语句和exit退出 exit实战---返回值测试 case实战---智能解 ...

  8. 1-23-shell脚本之-if流程控制语句和for循环语句的使用

    大纲: 1.逻辑判断 2.if流程控制语句 3.for循环控制语句   ---------------------------------------------- 在开始之前,先了解一下逻辑判断符号 ...

  9. 04 shell编程之循环语句

    Shell编程之循环语句 学习目标: 掌握for循环语句编程 掌握while循环语句编程 目录结构: For循环语句 l  读取不同的变量值,以逐个执行同一组命令 l  For语句结构 for 变量名 ...

随机推荐

  1. 树莓派3B+SimpleCV上连接iPhone4s摄像头

    目的:把iPhone4s当成网络摄像头,通过wifi连接到树莓派上,做为树莓派的摄像头. 1. iPhone4s上安装mini WebCam应用. 很旧的一个app, 没有密码,简单,无广告,免费. ...

  2. OpenWrt-Git依赖报错

    前言 在Ubuntu中搭建openwrt编译环境时,安装完了需要的软件之后,我们执行命令检查依赖是否满足, make defconfig 有时会出现以下警告: ihid@ubuntu:~/chaos_ ...

  3. C语言/C++编程学习:栈的代码实现之数组方案

    C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构.C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现 ...

  4. Go语言中其他数据与字符串类型的转换

    1 概述 Go语言是强类型语言,因此总会需要将字符串转成需要的类型.比如整型和字符串转换,字符串和布尔型的转换等.本文就介绍如何完成这些转换,以下是Go语言关于字符串转换的整理说明,主要是与切片类型的 ...

  5. spark 例子groupByKey分组计算

    spark 例子groupByKey分组计算 例子描述: [分组.计算] 主要为两部分,将同类的数据分组归纳到一起,并将分组后的数据进行简单数学计算. 难点在于怎么去理解groupBy和groupBy ...

  6. Linux系统下连接校园网Drcom客户端教程(广东工业大学)

    这篇教程写给想要学习Linux系统或者在Linux系统下有需要使用Drcom上网的同学,在我疯狂踩坑,经过n多次的刷机装机实验,体验不同发行版本的linux系统后,终于懂得怎么连接上drcom,想想连 ...

  7. (数据科学学习手札48)Scala中的函数式编程

    一.简介 Scala作为一门函数式编程与面向对象完美结合的语言,函数式编程部分也有其独到之处,本文就将针对Scala中关于函数式编程的一些常用基本内容进行介绍: 二.在Scala中定义函数 2.1 定 ...

  8. AvalonEdit-基于WPF的代码显示控件

    AvalonEdit是基于WPF的代码显示控件,项目地址:https://github.com/icsharpcode/AvalonEdit,支持C#,javascript,C++,XML,HTML, ...

  9. 版本控制工具——SVN

    一.需求 需求之一:备份 小明负责的模块就要完成了,就在即将Release之前的一瞬间,电脑突然蓝屏,硬盘光荣牺牲!几个月来的努力付之东流 需求之二:代码还原 这个项目中需要一个很复杂的功能,老王摸索 ...

  10. 20155233 2016-2017-2 《Java程序设计》第10周学习总结

    20155233 2016-2017-2 <Java程序设计>第10周学习总结 学习目标 了解计算机网络基础 掌握Java Socket编程 理解混合密码系统 掌握Java 密码技术相关A ...