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编程之循环语句(详细讲解以及脚本案例)相关推荐

  1. shell编程之循环语句

    shell编程之循环语句 文章目录 shell编程之循环语句 一.for循环语句 1. for循环语法结构 ㈠ 列表循环 2. 应用案例 二.while循环语句 1. while循环语法结构 2. 应 ...

  2. Shell编程之循环语句与常用转义字符及一些小实验

    for循环语句 循环控制语句 seq命令 实例: while循环 实例: until循环 实例: 常用转义字符 shell脚本多重循环小实验 一.99乘法表 二.矩形 三.直角三角形 四.等腰直角三角 ...

  3. 【Shell编程之循环语句与函数】

    目录 一.for循环语句 示例: 示例1 示例2 示例3 二.跳出循环 举例 转义符 三.while 语句的结构 示例: 四.until语句的结构 1.基本格式 五.seq命令 一.for循环语句 读 ...

  4. Shell编程之循环语句(for、while、until)

    文章目录 1.for语句的结构 示例1 示例2 示例3 示例4 2.while语句的结构 示例1 3.until语句的结构 示例1 1.for语句的结构 总结: 条件需要你预先已经知道会出现哪些情况, ...

  5. python循环语句中的乘法_python循环语句详细讲解

    想必大家都知道python循环语句吧,可以python循环语句有多种,比如for循环.while循环.if.else等等, 我们可以通过设置条件表达式永远不为 false 来实现无限循环,实例如下: ...

  6. Linux网络服务与shell脚本——Shell编程之条件语句

    第八章 Shell编程之条件语句 一.条件测试 1.测试命令 (1)test 条件表达式 (2)[条件表达式] (3)$?:根据返回值判断前者是否成立 2.文件测试:根据指定路径名称,判断对应文件或目 ...

  7. (四)shell编程之循环结构

    shell编程之循环结构 #本机课程目标 掌握for循环语句的基本语法结构 掌握while和until循环语句的基本语法结构 一.for循环语句 关键词:爱的魔力转圈圈

  8. shell编程之条件语句(文件测试,test命令,字符串和逻辑测试,if单支语句,if双支语句,if多支语句,case命令,用if写跑步小实验)

    文章目录 shell编程之条件语句 条件测试 test命令 整数值测试 free -m 提供了更简洁的查看系统内存使用情况: 字符串和逻辑测试 字符串 逻辑测试 一元运算符,二元运算符和三元运算符 i ...

  9. Shell编程之条件语句(if语句,case分支语句)

    Shell编程之条件语句 一.条件测试操作 1.test命令 2.文件测试 3.整数值比较 4.字符串比较 5.逻辑测试 二.if语句 单分支结构 双分支结构 多分支结构 三.case分支语句 一.条 ...

最新文章

  1. mongodb 存储过程 java_Java面试题分享-MongoDB
  2. C++五子棋(四)——走棋原理及权值计算
  3. 笔记-常见考点-常见问题原因分析
  4. super 和 this 关键字的比较+调用构造器(this)+动态绑定
  5. 嘿,我造了个代码高亮的插件
  6. ftp 上传下载整个目录
  7. 管螺纹如何标注_天天和螺纹打交道,你知道有多少种螺纹吗,原来螺纹种类这么乱...
  8. 笔记 时间2012年2月15日14:35:30
  9. 计算机程序员三级试题,计算机程序员考试试题及答案.
  10. 音乐播放器 歌词同步滚动功能实现
  11. 联想z510笔记本拆机
  12. 从零开始SpringCloud Alibaba实战(48)——阿里开发手册泰山版学习笔记二 日期时间 集合处理 并发处理
  13. 易语言打开c 程序,易语言调用word 易语言按钮打开一个word文档
  14. Android 使用Loader轻松实现仿微信图片加载
  15. Mybatis(一)Mybatis的基本使用
  16. 七牛云和Github如何使用PicGo设置免费图床
  17. 【群体遗传】Fst(群体间分化指数)
  18. websocket连接不上
  19. 【搜索算法】八数码问题的多种解法
  20. 潜心一技、做到极致!——Elastic认证工程师之路

热门文章

  1. python中日期字符串与datetime类型的相互转换
  2. WebRequest 超时不起作用
  3. java毕业设计如家快捷酒店管理系统的设计与应用+黄河科技学院源码+lw文档+mybatis+系统+mysql数据库+调试
  4. 从一场相亲说起,决策树
  5. 腾讯开放平台——client id is illegal(100008)!错误解决
  6. 纯CSS 实现关闭图标 icon
  7. 这 12 张手绘图,让我彻底搞懂了微服务架构!
  8. 听说高度近视的人不能打拳击?其实真相是这样的......
  9. Linux系统常见的压缩与解压命令
  10. swiper自制分页器