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 变量名 ...
随机推荐
- 嵌入式C语言自我修养 12:有一种宏,叫可变参数宏
12.1 什么是可变参数宏 在上面的教程中,我们学会了变参函数的定义和使用,基本套路就是使用 va_list.va_start.va_end 等宏,去解析那些可变参数列表我们找到这些参数的存储地址后, ...
- 开了几天的phpmyadmin的总结
近来无事,免费体验了一波腾讯云的vps,打了一个phpstudy,全部默认的配置,只不过,没有给他写入文件的权限 开启了日志,看了下,这几天黑客们的活动 首先,有两三个ip来爆破我的phpmyadmi ...
- Go 学习之路:异常处理defer,panic,recover
Go没有像Java那样的异常机制,它不能抛出异常.因为设计者们认为,将异常与控制结构混在一起容易使得代码变得混乱.于是乎引入Exception处理: defer,panic,recover; 简单描述 ...
- 20155210潘滢昊 2016-2017-2 《Java程序设计》第4周学习总结
20155210 2016-2017-2 <Java程序设计>第4周学习总结 教材学习内容总结 extends:单一继承. 抽象方法.抽象类: abstract:Java中有抽象方法的类一 ...
- 20155235 《Java程序设计》 实验四 Android开发基础
20155235 <Java程序设计> 实验四 Android开发基础 实验要求 基于Android Studio开发简单的Android应用并部署测试; 了解Android组件.布局管理 ...
- linux编程实践:实现pwd命令
内核为每个目录都设置了一个指向自己的i节点入口,即".",还有一个指向其父目录i节点的入口,即"..",我们首先获取当前目录的i节点编号,但是并不能知道当前目录 ...
- PANIC: HOME is defined but could not find Nexus_4_API_22.ini file in $HOME/.android/avd (Note: avd is searched in the order of $ANDROID_AVD_HOME,$ANDROID_SDK_HOME/.android/avd and $HOME/.android/avd)
sudo cp /root/.android/avd/*.ini $Home/.android/avd/ sudo cp -r /root/.android/avd/*.avd $Home/.a ...
- DIV+CSS实现竖排按钮样式
<div class="btn_left btn_left1">每日单元成功率</div><br/> <div class="b ...
- Cannot get connection for URL jdbc:oracle:thin:调用中无效参数
这个报错明显是连接数据库的url没有写对,但是,我要说的是但是,同样的代码生产没有问题,而测试环境报错了.最终哥找到那个错误,jdbc连接数据库时,有ResultSet,PreparedStateme ...
- python基础数据类型3
python_day_5 今日大纲: 1. dict 用大括号{} 括起来. 内部使用key:value的形式来保存数据 {'jay':'周杰伦', "jj":'林俊杰'} 注意: ...