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. 海思平台交叉编译curl支持SSL功能

    1.准备工具 1).交叉编译工具 2).下载libcurl和openssl源代码,我使用的是(openssl-1.0.2o.tar,curl-7.59.0.tar) 3).查看cpu详细 ~ # ca ...

  2. BugFree后台统计Bug信息

    以下为二维表信息 //统计严重等级Bug SELECT severity,count(severity) FROM `bf_bugview` where product_id=476 GROUP BY ...

  3. Debian Linux 下安装pip3

    由于Debian自带了python3,于是只需要安装pip 1.首先安装setuptools 下载wget --no-check-certificate https://pypi.python.org ...

  4. Leecode刷题之旅-C语言/python-112 路径总和

    /* * @lc app=leetcode.cn id=112 lang=c * * [112] 路径总和 * * https://leetcode-cn.com/problems/path-sum/ ...

  5. 【Mac】gem install 出错 You don't have write permissions for the /Library/Ruby/Gems

    问题描述 RedisDump 是一个用于 Redis 数据导人/导出的工具,是基于 Ruby 实现的,需要先安装 Ruby.但因为 Mac 自带有 Ruby 所以我直接用gem install red ...

  6. lncRNA芯片重注释

    .caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table ...

  7. [Java算法分析与设计]--链式堆栈的设计

    在上篇文章当中,我们实现了底层为数组的顺序栈.在我之前的文章中也提到过:以数组为数据结构基础在存储数据方面需要一整块连续的内存来存放数据,一旦遇到需要可以动态扩展的功能需求时如果数据量大可能会给虚拟机 ...

  8. 20155216 2016-2017-2 《Java程序设计》第三周学习总结

    教材学习内容总结 区分基本类型与类类型 类类型是自己定义产生的,基本类型是long,int,double等类型. 在类的定义过程中,可直接用class XXX {}对每个序定义的值域成员进行定义.这样 ...

  9. java课堂实践(5月17日)20155317 王新玮

    对P145 MathTool.java 代码托管 在IDEA中,使用JUnit进行单元测试,测试用例不少于三个,要包含正常情况,边界情况.提交测试代码和运行结果截图,加上学号水印,提交码云代码链接. ...

  10. Linux 用C语言实现简单的shell(1)

    发一波福利,操作系统的实验内容,大家可以借鉴一下,不过我的代码可能也存在一定的问题. 因为在一开始老师是一节一节课教的,当时并不知道后面还会用输入输出重定向,管道等一系列问题,我的兴趣也不在这个方面也 ...