Shell编程之循环语句(详细讲解以及脚本案例)
Shell编程之循环语句(详细讲解以及脚本案例)
文章目录
- 一、for语句的结构
- (一)、for语句应用实例
- 1、示例1——批量添加用户
- 2、示例2——使用根据IP地址检查主机状态
- 3、示例3——for循环计算1-100奇数之和
- 二、while语句的结构
- (一)、while 语句应用实例
- 1、示例1——while循环计算(1-100整数和)
- 2、示例2——while循环计算(1-100整数和)
- 三、until语句的结构
- 1、示例1——while循环计算(1-100整数和)
- 四、echo的特殊用法
一、for语句的结构
读取不同的变量值,用来逐个执行同一组命令
for 变量名 in 取值列表
do命令序列
done
for 收件人 in 邮件地址列表
do发送邮件
done
{1..10}$(seq 1 10) #指连续的1到10 ((i=1;i<=10;i++))
{1..10..2}$(seq 1 2 10) #指1、3、5、7、9,1到10之间从1开始每个加2((i=1;i<=10;i+=2))
(一)、for语句应用实例
1、示例1——批量添加用户
用户名存放在users.txt文件中,每行一个
初始密码均设为123456
验证脚本
#!/bin/bash
chmod 777 users.txt
for user in `cat /root/users.txtdouseradd $user echo "用户$user 已创建" echo "111111" | passwd --stdin $userdone
2、示例2——使用根据IP地址检查主机状态
- IP地址存放在ip.txt文件中,每行一个
- 使用ping命令检测各主机的连通性
#!/bin/bash
chmod 777 ip.txt
for i in `cat /root/ip.txt`doping -c 3 $i &> /dev/nullif [ $? -eq 0 ];thenecho "$i host is up"elseecho "$i host is down"fidone
3、示例3——for循环计算1-100奇数之和
#!/bin/bash
sum=0
for ((i=1;i<=100;i+=2))dolet sum=$sum+$idoneecho $sum
二、while语句的结构
重复测试某个条件,只要条件成立则反复执行
while 条件测试操作
do命令序列
done
while 未猜中正确价格
do反复猜测商品价格
done
(一)、while 语句应用实例
1、示例1——while循环计算(1-100整数和)
#!/bin/bash
sum=0
i=0
while [ $i -le 100 ]dolet sum=$sum+$ilet i++doneecho $sum
2、示例2——while循环计算(1-100整数和)
#!/bin/bash
echo "没事来猜数玩"
a=$[$RANDOM % 1000]
b=0
c=0
while [ $b -lt 1 ]doread -p "请输入你要猜的数: " dlet c++if [ $d -lt $a ];thenecho "你猜小了"let c++elif [ $d -gt $a ] ;thenecho "你猜大了" let c++elif [ $d -eq $a ];thenecho "恭喜你才对了,它的数是$a,你一共猜了$c次!!"c=2fidone
三、until语句的结构
重复测试某个条件,只要条件不成立则反复执行
until 条件测试操作
do命令序列
doneuntil 未超过10
do数字依次递增
done
1、示例1——while循环计算(1-100整数和)
#!/bin/bash
sum=0
i=0
until [ $i -gt 100 ]dolet sum=$sum+$ilet i++doneecho $sum
四、echo的特殊用法
echo -n 表示不换行输出echo -e 输出转义字符,将转义后的内容输出到屏幕上常用的转义字符如下:
\b 转义后相当于按退格键(backspace),但前提是"\b"后面存在字符;"\b"表示删除前一个字符,"\b\b"表示删除前两个字符。\c 不换行输出,在"\c"后面不存在字符的情况下,作用相当于 echo -n; 但是当"\c"后面仍然存在字符时,"\c"后面的字符将不会被输出。\n 换行,被输出的字符从"\n"处开始另起一行。\f 换行,但是换行后的新行的开头位置连接着上一行的行尾;\v 与\f相同;\t 转以后表示插入tab,即横向制表符;\r 光标移至行首,但不换行,相当于使用"\r"以后的字符覆盖"\r"之前同等长度的字符;但是当"\r"后面不存在任何字符时,"\r"前面的字符不会被覆盖\\ 表示插入"\"本身;
例:
[root@gcc ~]#echo -e "123\b456"12456
[root@gcc ~]#echo -e "123\c456" 123[root@gcc ~]#^C
[root@gcc ~]#echo -e "123\n456"123456
[root@gcc ~]#echo -e "123\f456" 123 456
[root@gcc ~]#echo -e "123\v456" 123 456
[root@gcc ~]#echo -e "123\t456"123 456
[root@gcc ~]#echo -e "123\r456" 456
[root@gcc ~]#echo -e "123\\456" 123\456
Shell编程之循环语句(详细讲解以及脚本案例)相关推荐
- shell编程之循环语句
shell编程之循环语句 文章目录 shell编程之循环语句 一.for循环语句 1. for循环语法结构 ㈠ 列表循环 2. 应用案例 二.while循环语句 1. while循环语法结构 2. 应 ...
- Shell编程之循环语句与常用转义字符及一些小实验
for循环语句 循环控制语句 seq命令 实例: while循环 实例: until循环 实例: 常用转义字符 shell脚本多重循环小实验 一.99乘法表 二.矩形 三.直角三角形 四.等腰直角三角 ...
- 【Shell编程之循环语句与函数】
目录 一.for循环语句 示例: 示例1 示例2 示例3 二.跳出循环 举例 转义符 三.while 语句的结构 示例: 四.until语句的结构 1.基本格式 五.seq命令 一.for循环语句 读 ...
- Shell编程之循环语句(for、while、until)
文章目录 1.for语句的结构 示例1 示例2 示例3 示例4 2.while语句的结构 示例1 3.until语句的结构 示例1 1.for语句的结构 总结: 条件需要你预先已经知道会出现哪些情况, ...
- python循环语句中的乘法_python循环语句详细讲解
想必大家都知道python循环语句吧,可以python循环语句有多种,比如for循环.while循环.if.else等等, 我们可以通过设置条件表达式永远不为 false 来实现无限循环,实例如下: ...
- Linux网络服务与shell脚本——Shell编程之条件语句
第八章 Shell编程之条件语句 一.条件测试 1.测试命令 (1)test 条件表达式 (2)[条件表达式] (3)$?:根据返回值判断前者是否成立 2.文件测试:根据指定路径名称,判断对应文件或目 ...
- (四)shell编程之循环结构
shell编程之循环结构 #本机课程目标 掌握for循环语句的基本语法结构 掌握while和until循环语句的基本语法结构 一.for循环语句 关键词:爱的魔力转圈圈
- shell编程之条件语句(文件测试,test命令,字符串和逻辑测试,if单支语句,if双支语句,if多支语句,case命令,用if写跑步小实验)
文章目录 shell编程之条件语句 条件测试 test命令 整数值测试 free -m 提供了更简洁的查看系统内存使用情况: 字符串和逻辑测试 字符串 逻辑测试 一元运算符,二元运算符和三元运算符 i ...
- Shell编程之条件语句(if语句,case分支语句)
Shell编程之条件语句 一.条件测试操作 1.test命令 2.文件测试 3.整数值比较 4.字符串比较 5.逻辑测试 二.if语句 单分支结构 双分支结构 多分支结构 三.case分支语句 一.条 ...
最新文章
- mongodb 存储过程 java_Java面试题分享-MongoDB
- C++五子棋(四)——走棋原理及权值计算
- 笔记-常见考点-常见问题原因分析
- super 和 this 关键字的比较+调用构造器(this)+动态绑定
- 嘿,我造了个代码高亮的插件
- ftp 上传下载整个目录
- 管螺纹如何标注_天天和螺纹打交道,你知道有多少种螺纹吗,原来螺纹种类这么乱...
- 笔记 时间2012年2月15日14:35:30
- 计算机程序员三级试题,计算机程序员考试试题及答案.
- 音乐播放器 歌词同步滚动功能实现
- 联想z510笔记本拆机
- 从零开始SpringCloud Alibaba实战(48)——阿里开发手册泰山版学习笔记二 日期时间 集合处理 并发处理
- 易语言打开c 程序,易语言调用word 易语言按钮打开一个word文档
- Android 使用Loader轻松实现仿微信图片加载
- Mybatis(一)Mybatis的基本使用
- 七牛云和Github如何使用PicGo设置免费图床
- 【群体遗传】Fst(群体间分化指数)
- websocket连接不上
- 【搜索算法】八数码问题的多种解法
- 潜心一技、做到极致!——Elastic认证工程师之路
热门文章
- python中日期字符串与datetime类型的相互转换
- WebRequest 超时不起作用
- java毕业设计如家快捷酒店管理系统的设计与应用+黄河科技学院源码+lw文档+mybatis+系统+mysql数据库+调试
- 从一场相亲说起,决策树
- 腾讯开放平台——client id is illegal(100008)!错误解决
- 纯CSS 实现关闭图标 icon
- 这 12 张手绘图,让我彻底搞懂了微服务架构!
- 听说高度近视的人不能打拳击?其实真相是这样的......
- Linux系统常见的压缩与解压命令
- swiper自制分页器