SHELL脚本练习(2)
本次练习添加了循环部分的内容
- 编写脚本for1.sh,使用for循环创建20账户, 账户名前缀由用户从键盘输入,账户初始密码由用户输入, 例如: test1、test2、test3……test10
- 编写脚本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

浙公网安备 33010602011771号