Shell编程之循环语句与函数

for语句的结构

读取不同的变量值,用来逐个执行同一组命令
在这里插入图片描述

示例1

批量添加用户
用户名存放在users。txt文件中,每行一个
初始密码均为123456
验证脚本

[root@localhost ~]# vi /root/users.txt
chen
wen
jian
[root@localhost ~]# vi uaddfor.sh
#!/bin/bash
ULIST=$(cat /root/users.txt)
for UNAME in $ULIST
do 
  useradd $UNAME
  echo "123456" | passwd --stdin $UNAME &> /dev/null
done  
[root@localhost ~]# chmod +x uaddfor.sh 
[root@localhost ~]# ./uaddfor.sh 
[root@localhost ~]# tail -3 /etc/passwd 
chen:x:1001:1001::/home/chen:/bin/bash
wen:x:1002:1002::/home/wen:/bin/bash
jian:x:1003:1003::/home/jian:/bin/bash

示例2

根据ip地址检查主机状态
IP地址存放在ipadds.txt文件中,每行一个
使用ping命令检测个主机的连通性

[root@localhost ~]# vi /root/ipadds.txt
20.0.0.1
20.0.0.2
20.0.0.10
20.0.0.21
20.0.0.100
[root@localhost ~]# vi chkhosts.sh
#!/bin/bash
HLIST=$(cat /root/ipadds.txt)
for IP in $HLIST
do
  ping -c 3 -i 0.2 -W 3 $IP &>/dev/null
  if [ $? -eq 0 ]
  then
    echo "Host $IP is up" && echo "Host $IP is up" >>/root/ipup.txt
  else
    echo "Host $IP is down" && echo "Host $IP is down" >>/root/ipdown.txt
  fi
done
[root@localhost ~]# chmod +x chkhosts.sh 
[root@localhost ~]# ./chkhosts.sh 
Host 20.0.0.1 is up
Host 20.0.0.2 is up
Host 20.0.0.10 is down
Host 20.0.0.21 is up
Host 20.0.0.100 is down
[root@localhost ~]# ll
......
-rw-r--r--  1 root root   49 Aug 13 09:17 ipadds.txt
-rw-r--r--  1 root root  196 Aug 13 09:19 ipdown.txt
-rw-r--r--  1 root root  224 Aug 13 09:19 ipup.txt
......
[root@localhost ~]# cat ipup.txt 
Host 20.0.0.1 is up
Host 20.0.0.2 is up
Host 20.0.0.21 is up
[root@localhost ~]# cat ipdown.txt 
Host 20.0.0.10 is down
Host 20.0.0.100 is down

while语句的结构

重复测试某个条件,只要条件成立则反复执行

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值