循环不简单,简单聊聊常用的三个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的主要内容,如果未能解决你的问题,请参考以下文章