Shell编程之循环语句

本文详细介绍了Shell编程中的三种循环语句:for循环用于遍历取值列表;while循环基于特定条件进行迭代,需要注意避免死循环;until循环则在条件不成立时执行,与while相反。每个循环结构都配合实例进行了说明。

一、for循环(遍历)

(1)for语句需要定义一个变量和取值列表,根据不同的取值执行相同的命令,直到变量值用完。
(2)取值列表里包含多个属性相同的对象。
for

#for语句结构
for 变量名 in 取值列表
do
  命令序列
done

实操1
请输出1到10
for1
实操2

根据IP地址检查主机状态
IP地址存放在ip.txt文件中,每行一个;
#!/bin/bash

a=`cat /opt/ip.txt`

for i in $a
do
  ping -c 3 -i 0.5 -W 2 $i &>/dev/null
  if [ $? -eq 0 ];then
    echo "$i 主机在线"
  else
    echo "$i 主机不在线"
  fi
done

for2

二、while循环(迭代)

(1)根据特定条件反复执行一个命令序列,直到不满足条件为止。
(2)编写时可能会出现死循环,要避免这种情况发生
true(真)和false(假)为特殊条件测试操作,也可以在if语句的条件测试中使用。
true作为条件时,表示条件永远成立,无限执行,也就是死循环,需要强制终止
false作为条件时,表示条件不成立,不执行命令序列
while

#while语句结构
while 条件测试操作
do
  命令序列
done

实操1

批量添加用户; 用户名称以stu开头,按数字顺序进行编号; 
一共添加20个用户,即stu1、stu2、......、stu20 
初始密码均设为123456
#!/bin/bash
#
a=1
while [ $a -le 20 ]
do
  useradd stu$a
  echo "123456" | passwd --stdin $a 
  let a++
done

while1
实操2

猜商品价格
通过变量RANDOM获得随机数
提示用户猜测并记录次数,猜中后退出循环

价格1
价格2

三、until循环

与while相反,重复测试某个条件,只要条件不成立则反复执行。
until
实操

计算1~50的和值
通过循环累加的方式计算1~50的和值
  
#!/bin/bash
#
a=1
sum=0
until [ $a -gt 50  ]
do
  sum=$[$sum+$a]
  let a++
done
echo "1-50的和为:$sum"

求和

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值