Shell编程之循环语句

Posted Zmac111

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Shell编程之循环语句相关的知识,希望对你有一定的参考价值。

一、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"

求和

以上是关于Shell编程之循环语句的主要内容,如果未能解决你的问题,请参考以下文章

Shell编程之循环语句

shell if 语句

shell编程之case分支语句,for循环语句和while循环语句

Shell编程之循环语句

Shell编程之循环语句

shell脚本——编程之循环语句(forwhileuntil)