shell流程控制之循环

  1. 使用case实现成绩优良差的判断
[root@localhost test]# cat 1.sh
#!/bin/bash
 
read -p "请输入成绩:" number
case "$number" in
	9[0-9]|100)
		echo "成绩:优秀"
		;;
	8[0-9])
		echo "成绩:良好"
		;;
	7[0-9])
		echo "成绩:中等"
		;;
	[1-6][0-9]|0|[0-9])
		echo "成绩:差!"
		;;
	*)
		echo "请输入正确的数值" 
		exit;
esac
[root@localhost test]# bash 1.sh
请输入数值在0-100的范围内98
成绩:优秀
  1. for创建20用户
    用户前缀由用户输入
    用户初始密码由用户输入
    例如:test01,test10
[root@localhost test]# cat 2.sh
#!/bin/bash

read -p "输入用户前缀:" user
read -p "输入初始密码:" passwd	
for i in `seq -w 1 20`
do
    user=$user$i
    passwd=$passwd$i
    echo "$user成功创建用户$user"
    useradd $user
    echo "$passwd" | passwd --stdin $user &> /dev/null
done
  1. for ping测试指网段的主机
    网段由用户输入,例如用户输入192.168.2 ,则ping 192.168.2.10 - - -
    192.168.2.20
    UP: /tmp/host_up.txt
    Down: /tmp/host_down.txt
[root@localhost test]# cat 3.sh
#!/bin/bash

read -p "主机:" ip
for i in "$ip".{10..20}
do
   if ping -c 1 -w2 $i &>/dev/null
   then
   	echo "complete!" &>  /tmp/host_up.txt
   else
   	echo "$i failed!" &>  /tmp/host_down.txt
   fi
done
  1. 使用for实现批量主机root密码的修改
    成功或失败都必须记录
    提示:主机IP存放在一个文件中
    SSH:实现公钥认证,执行远程中主机命令
    实现公钥认证
    #ssh-keygen 在用于管理的主上生成密钥对
    #ssh-copy-id -i 192.168.2.3
[root@localhost test]# vim ipfile
192.168.159.132
  
[root@localhost test]# cat 4.sh
#!/bin/bash
ssh-keygen -f /root/.ssh/id_rsa -P '' -q $>/dev/null
for ip in `cat ipfile`
do
 echo $ip
 ssh-copy-copy-id root@$ip
done
for ip in `cat ipfile`
do
 echo $ip
 ssh root@ip "echo redhat | passwd --stdin root" &>/dev/null
 if [ "$?" -eq 0 ]
 then
   echo "host $ip successfully update passwd"
 else
   echo "host $ip error update passwd"
 fi
done
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值