bash循环语句
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循环语句的更多相关文章
- bash 编程中循环语句用法
1.if 是单分支语句,使用格式如下: if condition ; then statement ….. fi 2.if … else 是双分支语句,使用格式如下: if condition ; t ...
- 循环语句for,while,until,select
循环 *循环执行 将某代码段重复运行多次 重复运行多少次: 循环次数事先已知 循环次数事先未知 有进入条件和退出条件 *常见的循环语句有for,while,until for循环 for 变量名 n ...
- shell编程基础(二): shell脚本语法之分支语句和循环语句
一.分支语句 1.条件测试:test [ 命令test或[可以测试一个条件是否成立,如果测试结果为真,则该命令的Exit Status为0,如果测试结果为假,则命令的Exit Status为1(注意与 ...
- Shell脚本应用(for、while循环语句和case分支语句)
1.for:读取不同的变量值,逐个执行同一组命令,直到取值完毕退出,变量值以空格分隔 语法: for 变量值 in 取值列表 do 命令序列 done 2.while:重复测试某个条件,成立则执 ...
- Shell编程-08-Shell中的循环语句
目录 while语句 until语句 for语句 select语句 循环中断控制 循环语句总结 循环语句常用于重复执行一条命令或一组命令等,直到达到结束条件后,则终止执行.在Shell中常见的 ...
- shell基础(八)-循环语句
国庆过后:感觉有点慵懒些了:接着上篇:我们继续来学习循环语句. 一. for循环 与其他编程语言类似,Shell支持for循环. for循环一般格式为: for 变量 in 列表 do command ...
- 1-24-case流程控制和while循环语句的使用
大纲: 1.while循环控制语句 while实战---批量添加规则用户 while实战---猜价格游戏 2.case流程控制语句和exit退出 exit实战---返回值测试 case实战---智能解 ...
- 1-23-shell脚本之-if流程控制语句和for循环语句的使用
大纲: 1.逻辑判断 2.if流程控制语句 3.for循环控制语句 ---------------------------------------------- 在开始之前,先了解一下逻辑判断符号 ...
- 04 shell编程之循环语句
Shell编程之循环语句 学习目标: 掌握for循环语句编程 掌握while循环语句编程 目录结构: For循环语句 l 读取不同的变量值,以逐个执行同一组命令 l For语句结构 for 变量名 ...
随机推荐
- 树莓派3B+SimpleCV上连接iPhone4s摄像头
目的:把iPhone4s当成网络摄像头,通过wifi连接到树莓派上,做为树莓派的摄像头. 1. iPhone4s上安装mini WebCam应用. 很旧的一个app, 没有密码,简单,无广告,免费. ...
- OpenWrt-Git依赖报错
前言 在Ubuntu中搭建openwrt编译环境时,安装完了需要的软件之后,我们执行命令检查依赖是否满足, make defconfig 有时会出现以下警告: ihid@ubuntu:~/chaos_ ...
- C语言/C++编程学习:栈的代码实现之数组方案
C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构.C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现 ...
- Go语言中其他数据与字符串类型的转换
1 概述 Go语言是强类型语言,因此总会需要将字符串转成需要的类型.比如整型和字符串转换,字符串和布尔型的转换等.本文就介绍如何完成这些转换,以下是Go语言关于字符串转换的整理说明,主要是与切片类型的 ...
- spark 例子groupByKey分组计算
spark 例子groupByKey分组计算 例子描述: [分组.计算] 主要为两部分,将同类的数据分组归纳到一起,并将分组后的数据进行简单数学计算. 难点在于怎么去理解groupBy和groupBy ...
- Linux系统下连接校园网Drcom客户端教程(广东工业大学)
这篇教程写给想要学习Linux系统或者在Linux系统下有需要使用Drcom上网的同学,在我疯狂踩坑,经过n多次的刷机装机实验,体验不同发行版本的linux系统后,终于懂得怎么连接上drcom,想想连 ...
- (数据科学学习手札48)Scala中的函数式编程
一.简介 Scala作为一门函数式编程与面向对象完美结合的语言,函数式编程部分也有其独到之处,本文就将针对Scala中关于函数式编程的一些常用基本内容进行介绍: 二.在Scala中定义函数 2.1 定 ...
- AvalonEdit-基于WPF的代码显示控件
AvalonEdit是基于WPF的代码显示控件,项目地址:https://github.com/icsharpcode/AvalonEdit,支持C#,javascript,C++,XML,HTML, ...
- 版本控制工具——SVN
一.需求 需求之一:备份 小明负责的模块就要完成了,就在即将Release之前的一瞬间,电脑突然蓝屏,硬盘光荣牺牲!几个月来的努力付之东流 需求之二:代码还原 这个项目中需要一个很复杂的功能,老王摸索 ...
- 20155233 2016-2017-2 《Java程序设计》第10周学习总结
20155233 2016-2017-2 <Java程序设计>第10周学习总结 学习目标 了解计算机网络基础 掌握Java Socket编程 理解混合密码系统 掌握Java 密码技术相关A ...