shell脚本编程—for,while,嵌套循环

本文介绍了Shell脚本中的循环控制结构,包括for循环和while循环的使用示例。for循环用于检验网络状态和实现倒计时功能,而while循环则展示了如何创建多个用户及密码。此外,还讲解了嵌套循环的应用,通过实例演示了九九乘法表的生成过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

for循环

for 条件
do
    动作
done
####用法1:
for NUM in `seq 10` ###指定步长: `seq 1 2 10`
do 
    echo $NUM
done
####用法2:
for (i=0; i<=10; i++)
do 
    动作
done

例:检验网络状态

[root@station mnt]# cat net.sh 
#!/bin/bash

#for((a=i;i>=50&&i<=55;i++))
for i in `seq 50 1 55`
#for i in {50..55}
do
    ping -c1 -w1 172.25.254.$i &> /dev/null && echo 172.25.254.$i is up || echo 172.25.254.$i is down
done

在这里插入图片描述

执行结果如下:
在这里插入图片描述

例2:倒计时
在这里插入图片描述

在这里插入图片描述

若上题修改为用户输入时间:分:秒,开始倒计时

[root@station mnt]# cat time2.sh 
#!/bin/bash
###将用户输入时间转换为秒
TIME=$1*60+$2
###为了便于实验,如果用户输入的时间大于60分钟,提示时间超出
if [ $1 -gt 60 ];then
    echo "Timeout"
    exit 1
fi
###倒计时
for ((i=$TIME;i>0;i--))
do
    echo -n "Time $[ $i/60 ] : $[ $i%60 ] "
    echo -ne "\r"
    sleep 1
done

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

while循环

while 条件
do
    动作
done

例:创建多个用户及密码

[root@station mnt]# cat user.sh 
#!/bin/bash
PREFIX="westos"
i=1
while [ $i -le 5 ]
do
    useradd ${PREFIX}$i &> /dev/null
    echo "redhat" | passwd --stdin ${PREFIX}$i &> /dev/null
    ((i++))
done

在这里插入图片描述

在这里插入图片描述

嵌套循环

for (())
do
    for(())
    do
        xxx
    done
done

例:九九乘法表

[root@station mnt]# cat mul.sh 
#!/bin/bash
for i in `seq 9`
do
    for j in `seq $i`
    do
        echo -ne "$i*$j=$(($i*$j))\t"
    done
    echo -e "\n"
done

在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值