循环不简单,简单聊聊常用的三个shell循环,for-while-until

Posted 丁CCCCC

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了循环不简单,简单聊聊常用的三个shell循环,for-while-until相关的知识,希望对你有一定的参考价值。

一、for

1.1 概述

读取不同的变量值,来逐个执行同一组命令

表达式

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

1.2 结构图

在这里插入图片描述

1.3 模板

求1到100所有整数的偶数和与奇数和

命令文本

#!/bin/bash				# 表示该文本使用bash执行

a=0				# 设置变量a
b=0				# 设置变量b

for i in {1..100}			# 设置一个循环i,表示将1到100的数都输出
do

   if [ $((i%2)) -eq 0 ];then				# 使用余数2,使得结果等于0,得出为偶数
   let a+=i
else
   let b+=i

    fi

done

echo "偶数和:$a"
echo "奇数和:$b"

在这里插入图片描述

检测固定范围内的主机是否在线

for a in 192.168.253.{8..12}				# 设置循环i,取值范围给出
do

ping -c 2 -i 0.5 -w 2 $a &>/dev/null		# 命令序列,/dev/null为黑洞文件

 if [ $? = 0 ];then							# 插入内循环,前面的回环码如果为0,表示正常
echo "主机正常"

echo $a >> /opt/lianxi/host_ip				# 正常的IP输出到指定文件

  else
echo "主机离线"

 fi

done

在这里插入图片描述

二、while

2.1 概述

重复测试指定的条件,只要条件成立就反复执行,若退出需添加命令

表达式

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

2.2 结构图

在这里插入图片描述

2.3 模板

计算1-100的和

a=0								# 设置两个变量
b=0

while [ $a -le 100 ]			# 给出条件操作,变量a 小于等于100
do
    let b=b+a					# 命令序列,和值b为b+a
    let a++						# a++等于$a[a+1],超过100后,条件不成立则终止循环

done

echo "总数:$b"

在这里插入图片描述

三、until

3.1 概述

重复测试某个条件,只要条件不成立就会反复执行
和while正好相反

表达式

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

3.2 结构图

在这里插入图片描述

3.3 模板

求1-50的和值

a=0							# 设置和值变量
b=1							# 设置变量
	
until [ $b -gt 50 ]			# 设置条件,变量b大于50
do
  a=$[$a+$b]				# 和值变量a等于 a+b
  let b++					# b++等于$b[b+1],数值到达51的时候说明符合条件,退出循环

done

echo "1-50和值:$a"			# 输出结果

在这里插入图片描述

以上是关于循环不简单,简单聊聊常用的三个shell循环,for-while-until的主要内容,如果未能解决你的问题,请参考以下文章

Shell循环之for,while,until

Shell脚本关于循环的一些总结

shell循环结构都有哪些

Linux Shell:Shell循环语句

Shell编程简单使用

shell脚本并发