SHELL脚本练习(2)

本次练习添加了循环部分的内容

  1. 编写脚本for1.sh,使用for循环创建20账户, 账户名前缀由用户从键盘输入,账户初始密码由用户输入, 例如: test1、test2、test3……test10
  2. 编写脚本for2.sh,使用for循环,通过ping命令测试网段的主机连通性,IP前3段由用户输入。
    如: 输入192.168.48, 则 ping 192.168.48.125 - 192.168.48.135. 将可以 ping通的主机IP地址写入到 /tmp/host_up.txt文件中, 不能ping通的主机IP地址写入到: /tmp/host_down.txt文件中

#! /etc/bash
read -p "请输入用户账户名前缀:" prefix
read -p "请输入用户的密码:" passwd

for((i=1;i<=20;i++))
do
        user=$prefix$i  #存储完整账户名
        if id $user &> /dev/null  #测试账户是否存在
        then
                echo "$user 已存在"
        else
                useradd $user
                if [ $? -eq 0 ]  #使用状态码判断上一个命令是否成功执行
                then
                        echo "$passwd" | passwd --stdin $user &> /dev/null  #使用非交互式创建账户及给予密码
                else
                        echo "用户创建失败"
                        exit
                fi
        fi
done

#! /etc/bash
read -p "请输入网段" ip
for ((i=125;i<=135;i++))
do
        IP="$ip"."$i"
        if ping -c 2 -w 3 $IP &> /dev/null
        then
                echo "$IP is up" >> /tmp/host_up.txt
        else
                echo "$IP is down" >> /tmp/host_down.txt
        fi
done

echo "up ip:"
cat /tmp/host_up.txt

echo

echo "down ip:"
cat /tmp/host_down.txt

posted @ 2024-11-12 13:53  hanasea  阅读(20)  评论(0)    收藏  举报