shell脚本练习2

1. 使用case实现成绩优良差的判断

#!/bin/bash
read -p "请输入成绩:" grade
case "$grade" in
        8[5-9]|9[0-9]|100)
                echo "优"
                ;;
        7[0-9]|8[0-4])
                echo "良"
                ;;
        6[0-9])
                echo "中"
                ;;
        [0-9]|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9])
                 echo "差"
                ;;
        *)
                 echo "请输入0-100的整数!!!"
esac


2. for创建20用户
   用户前缀由用户输入
   用户初始密码由用户输入
   例如:test01,test10

#!/bin/bash
read -p "请输入用户前缀:" prefix
read -p "请输入用户初始密码:" password
for i in {01..20}
do
    username="${prefix}${i}"
    useradd $username
    echo $password | passwd --stdin $username
done


3. for ping测试指网段的主机
   网段由用户输入,例如用户输入192.168.2 ,则ping 192.168.2.10 --- 192.168.2.20
   UP: /tmp/host_up.txt
   Down: /tmp/host_down.txt

#!/bin/bash
read -p "请输入要测试的ip网段:" ip
for i in {10..20}
do
        ping -c 2 $ip.$i >&/dev/null
        if [ $? -eq 0 ]
        then
                echo "$ip.$i is up" >> /tmp/host_up.txt
        else
                echo "$ip.$i is down" >> /tmp/host_down.txt
        fi
done


4. 使用for实现批量主机root密码的修改
   成功或失败都必须记录
   提示:主机IP存放在一个文件中
   SSH:实现公钥认证,执行远程中主机命令
   实现公钥认证
   # ssh-keygen        在用于管理的主上生成密钥对
   # ssh-copy-id -i 192.168.2.3

#!/bin/bash
read -p "修改后的密码:" pass
for ip in $(cat iplist)
do
        ping -c2 $ip >/dev/null
        if [ $? -eq 0 ]
        then
                ssh $ip echo $pass | passwd --stdin root >/dev/null
                if [ $? -eq 0 ]
                then
                        echo "success"
                else
                        echo "fail"
                fi
        else
                echo "该主机不存在"
        fi
done

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值