shell循环练习

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

#!/bin/bash
read -p "please input the grade:" grade
case "$grade" in
        8[5-9]|9[0-9]|100)
                echo "A"
        ;;
        7[0-9]|8[0-5])
                echo "B"
        ;;
        6[0-9])
                echo "C"
        ;;
        *)
                echo "D"
esac

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

#!/bin/bash
read -p "please input qianzhui:" name
read -p "please input passwd:" password
for ((i=1;i<=20;i++))
do
        if [ $i -lt 10 ];then
                user="$name"0$i
        else
                user=$name$i
        fi
        if ! id -u $user &>/dev/null ; then
                useradd $user
                echo "$password" | passwd --stdin $user &>/dev/null
        else
                echo "$user is exists"
        fi
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 "please input the ip duan :" ip
for i in {10..20}
do
        ping -c3 $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 "changed passwd: " password
num=`cat ip | wc -l`
for ((i=1;i<=$num;i++))
do
		ip=`head -$i ip | tail -1 | awk '{print $1}'`
		port=`head -$i ip | tail -1 | awk '{print $2}'`
        ping -c2 $ip &>/dev/null
        if [ $? -eq 0];then
                ssh -p $port root$ip echo $password | passwd --stdin root >/dev/null
                if [ $? -eq 0];then
                        echo "success"
                else
                        echo "fail"
                fi
        else
                echo "not exist"
        fi
done

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值