shell脚本之循环语句详解(for、while 、until循环语句)

for、while 、until循环语句

  • 一、for循环语句
    • 1.格式用法
    • 2.for循环示例
      • 例1:用for语句 输出1-100的所以整数和
      • 例2:用for语句 输出1-100的所以偶数和
      • 例3:把用户列表中的所有用户名,循环添加密码为123123的用户
      • 例4 :根据IP地址检测主机状态
  • 二、while循环语句
    • 1、while语句的结构
    • 2、取随机数,即固定位数的随机数
    • 3、1000以内的猜数游戏
  • 三、until语句
    • 1. until语句结构
  • 四、常用转义字符
    • 1.常用转义符 -n
    • 2.常用 -e
  • 五、双重for循环
  • 六、break 和 continue
    • 1.break跳出单个循环
    • 2.continue

一、for循环语句

读取不同的变量值,用来逐个执行同一组命令
遍历的过程:把文本中所有的内容都执行一遍

1.格式用法

空格 tab键(制表符) 换行,去取for循环去遍历的列表
每一次遍历去执行一次do的操作
shell脚本之循环语句详解(for、while 、until循环语句)_第1张图片
格式:


for 变量名 in 取值列表        
do 
   命令序列(命令行)
done

循环输出1-10

for i in {1..10}          

在这里插入图片描述

shell脚本之循环语句详解(for、while 、until循环语句)_第2张图片


i++    i=i+1   #自增1 
i+=2   i=i+2   #自增2 
i+=3   i=i+3   #自增3

2.for循环示例

例1:用for语句 输出1-100的所以整数和

shell脚本之循环语句详解(for、while 、until循环语句)_第3张图片
在这里插入图片描述

例2:用for语句 输出1-100的所以偶数和

shell脚本之循环语句详解(for、while 、until循环语句)_第4张图片
在这里插入图片描述

例3:把用户列表中的所有用户名,循环添加密码为123123的用户

用户列表:
shell脚本之循环语句详解(for、while 、until循环语句)_第5张图片

shell脚本之循环语句详解(for、while 、until循环语句)_第6张图片
执行后的用户文件中。
在这里插入图片描述

例4 :根据IP地址检测主机状态

主机列表文件
shell脚本之循环语句详解(for、while 、until循环语句)_第7张图片

shell脚本之循环语句详解(for、while 、until循环语句)_第8张图片

二、while循环语句

对于要求控制循环次数、操作对象按数字顺序编号、按特定条件执行重复操作等情况,更适用while循环语句

1、while语句的结构

shell脚本之循环语句详解(for、while 、until循环语句)_第9张图片
shell脚本之循环语句详解(for、while 、until循环语句)_第10张图片
shell脚本之循环语句详解(for、while 、until循环语句)_第11张图片
shell脚本之循环语句详解(for、while 、until循环语句)_第12张图片

2、取随机数,即固定位数的随机数

shell脚本之循环语句详解(for、while 、until循环语句)_第13张图片

3、1000以内的猜数游戏

shell脚本之循环语句详解(for、while 、until循环语句)_第14张图片

shell脚本之循环语句详解(for、while 、until循环语句)_第15张图片

三、until语句

shell脚本之循环语句详解(for、while 、until循环语句)_第16张图片

shell脚本之循环语句详解(for、while 、until循环语句)_第17张图片

1. until语句结构

until 条件测试操作
do  
   命令序列
done

shell脚本之循环语句详解(for、while 、until循环语句)_第18张图片

四、常用转义字符

1.echo -n 表示不换行输出

2.echo -e 输出转义字符,将转义后的内容输出到屏幕上

3.常用的转义字符如下:   \b 转义后相当于按退格键(backspace),但前提是"\b"后面存在字符;"\b"表示删除前一个字符,"\b\b"表示删除前两个字符。

4.\c 不换行输出,在"\c"后面不存在字符的情况下,作用相当于 echo -n; 但是当"\c"后面仍然存在字符时,"\c"后面的字符将不会被输出。

5.\n 换行,被输出的字符从"\n"处开始另起一行。 
 
6.\f 换行,但是换行后的新行的开头位置连接着上一行的行尾;

7.\v 与\f相同;

8.\t 转以后表示插入tab,即横向制表符;

9.\r 光标移至行首,但不换行,相当于使用"\r"以后的字符覆盖"\r"之前同等长度的字符;但是当"\r"后面不存在任何字符时,"\r"前面的字符不会被覆盖

10.\\ 表示插入"\"本身;

1.常用转义符 -n

在这里插入图片描述
在这里插入图片描述

echo -n 表示对下一行不换行
在这里插入图片描述

在这里插入图片描述

2.常用 -e

echo -e 输出转义字符,将转义后的内容输出到屏幕上d
这里配合使用"\t"即,在rain后面加一个TAB横向制表符。
在这里插入图片描述
在这里插入图片描述
其他的转义字符配合-e使用。

五、双重for循环

即在一个for循环内部再加一个for循环。

这里用如下事例,可以看出,在执行一次a=1的循环 时,b执行了5次。
shell脚本之循环语句详解(for、while 、until循环语句)_第19张图片
shell脚本之循环语句详解(for、while 、until循环语句)_第20张图片

六、break 和 continue

1.break跳出单个循环

在内循环执行break 就跳出当前的内循环了,去执行外循环了
作用:
1跳出当前循环
2并且break下面的语句不去执行
我们可以通过内外循环的输出来看break的特性。


#!/bin/bash
#break

for(( a=1;a<=5; a++ ))
do
  echo "outside $a"
  for ((b=1;b<=5;b++ ))
  do
     if [ $b -eq 4 ]
      then
      break                   #这里当b=4的时候,进行break,不进行后面的输出$b.
     fi
   echo "inside $b "
  done

done

shell脚本之循环语句详解(for、while 、until循环语句)_第21张图片
内循环到4就停止了,5不去判断了。

2.continue

中止某次循环,不会完全终止整个命令
#!/bin/bash
#continue


for (( a=1;a<=15;a++))
do
    if [ $a -gt 5 ] && [ $a -lt 10 ]
    then
       continue
    fi
   echo " $a "
done

shell脚本之循环语句详解(for、while 、until循环语句)_第22张图片

部分终止循环。

你可能感兴趣的:(shell)