【Shell】【学习笔记】Linux Shell脚本应用(八)

课时8 使用for循环

一、for语句结构
语法格式
for 变量名  in 取值列表
do
        命令序列
done

二、基本用法示范
示例1:一次输出3个字符串
[ root@localhost ~]# cat test1.sh
#!/bin/bash
for i in "1st." "2st." "3st."
do
        echo $i
done
[ root@localhost ~]# ./test1.sh
1st.
2st.
3st.

示例2:逐词输出/etc/host.conf文件内容
[ root@localhost ~]# cat  /etc/host.conf
order hosts.bind
[ root@localhost ~]# cat test2.sh
#!/bin/bash
for i in $(cat /etc/host.conf)
do
        echo $i
done
[ root@localhost ~]# ./test2.sh
order
hosts.bind

三、案例实战
案例实战一:批量加用户账号
        1、用户列表文件users.txt,每行一个
        2、将初始口令设为123456,首次登陆后必须更改
[ root@localhost ~]# cat  /root/users.txt
zhangsan
lisi
......
[ root@localhost  ~ ]# cat  uad.sh
#!/bin/bash
for i in $(cat /root/users.txt)
do
        useradd $i
        echo "123456" | passwd --stdin $i
        chage -d 0 $i
done
[ root@localhost ~]# ./uad.sh
Changing password for user zhangsan.
passwd: all authentication tokens updated successfully.
Changing password for user lisi.
passwd: all authentication tokens updated successfully.
......
[ root@localhost ~]# tail /etc/passwd
zhangsan:x:506:506::/home/zhangsan:/bin/bash
lisi:x:506:506::/home/llisi:/bin/bash
......

案例实战二:检测一个IP范围的主机状态
        1、192.168.4.1 - 192.168.4.10
        2、根据是否ping通来判断
[ root@localhost  ~ ]# cat  chkping.sh
#!/bin/bash
IP_PRE="192.168.4."
for i in $(seq 1 10)
do
        ping -c 3 -i 0.2 -W 3 ${ IP_PRE }$IP &> /dev/null
        if [ $? -eq 0 ] ; then
                echo " ${ IP_PRE }$IP is up. "
        else
                 echo " ${ IP_PRE }$IP is down. "
        fi
done
[ root@localhost  ~ ]# ./chkping .sh
192.168.4.1 is up.
192.168.4.2 is up.
192.168.4.3 is up.
192.168.4.4 is down.
......

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值