目录
2、提示用户输入一个小于100的整数,并计算从1到该数之间所有整数和
4、用户名存放在users .txt文件中,每行一个,若该用户存在,输出提示该用户已存在;若该用户不存在,提示用户输入密码,建立用户并设立其密码 初始密码为123123
5、检测指定范围主机是否通信,将通信的主机ip输出到文件host_ip_online中不通信的主机ip输出到文件host_ip_offline中
6、用户输入密码,脚本判断密码是否正确,正确密码123123,输入正确提示正确信息,连续输错3次则报警。
1、计算1-100的和
[root@localhost ~]# seq -s+ 100 |bc
5050
[root@localhost shell]# vim 1.sh
#!/bin/bash
sum=0
i=0
while [ $i -le 100 ]
do
sum=$[ $sum + $i ]
i=$[ i + 1 ]
done
echo "1-100的整数和为:$sum"
[root@localhost shell]# bash 1.sh
1-100的整数和为:5050
2、提示用户输入一个小于100的整数,并计算从1到该数之间所有整数和
[root@localhost shell]# vim 2.sh
#!/bin/bash
read -p "请输入小于一个0-100的整数:" num
sum=0
i=1
if [ $num -le 100 ];then
while [ $i -le $num ]
do
sum=$[ sum + i]
i=$[i+1]
done
echo "1-$num的和为:$sum"
else
echo "输入错误,请输入小于100的整数"
fi
[root@localhost shell]# bash 2.sh
请输入小于一个0-100的整数:50
1-50的和为:1275
3、从1到100所有整数的偶数和、奇数和
##计算1-100偶数的和
[root@localhost ~]# seq -s+ 0 2 100 |bc
2550
##计算1-100奇数的和
[root@localhost ~]# seq -s+ 1 2 100 |bc
2500
[root@localhost shell]# vim 3.sh
#!/bin/bash
SUM=0
sum=0
i=0
while [ $i -le 100 ]
do
a=$[ i % 2 ]
if [ $a -eq 0 ] ;then
SUM=$[ SUM + i]
else
sum=$[ sum + i]
fi
let i++
done
echo "1到100的偶数和为$SUM"
echo "1到100的奇数和为$sum"
4、用户名存放在users .txt文件中,每行一个,若该用户存在,输出提示该用户已存在;若该用户不存在,提示用户输入密码,建立用户并设立其密码 初始密码为123123
[root@localhost shell]# vim users.txt
my
xxl
zs
[root@localhost shell]# vim 4.sh
#!/bin/bash
#用户名存放在users .txt文件中,每行一个
#判断文件里的用户是否存在
#若该用户存在,输出提示该用户已存在,若该用户不存在,建立用户并设立初始密码为123123
cat /root/shell/users.txt | while read user
do
cat /etc/passwd |grep $user &> /dev/null
if [ $? -eq 0 ];then
echo "用户${user}已存在"
else
echo "用户${user}创建中...."
useradd $user
echo "123123" | passwd --stdin $user
echo "用户创建完成"
fi
done
[root@localhost shell]# bash 4.sh
5、检测指定范围主机是否通信,将通信的主机ip输出到文件host_ip_online中不通信的主机ip输出到文件host_ip_offline中
[root@localhost shell]# vim 5.sh
#!/bin/bash
#检测指定范围主机是否通信#将通信的主机ip输出到文件host_ip_online中不通信的主机ip输出到文件host_ip_offline中
i=100
while [ $i -le 110 ]
do
ping -c 2 -w 3 192.168.52.$i &>/dev/null
if [ $? -eq 0 ]
then
echo "192.168.52.$i is online" >>/opt/host_ip_online
else
echo "192.168.52.$i is offline" >>/opt/host_ip_offline
fi
let i++
done
[root@localhost shell]# bash 5.sh
[root@localhost opt]# cat host_ip_online
192.168.52.100 is online
192.168.52.110 is online
[root@localhost opt]# cat host_ip_offline
192.168.52.101 is offline
192.168.52.102 is offline
192.168.52.103 is offline
192.168.52.104 is offline
192.168.52.105 is offline
192.168.52.106 is offline
192.168.52.107 is offline
192.168.52.108 is offline
192.168.52.109 is offline
6、用户输入密码,脚本判断密码是否正确,正确密码123123,输入正确提示正确信息,连续输错3次则报警。
[root@localhost shell]# vim 6.sh
#!/bin/bash
#用户输入密码,脚本判断密码是否正确,输入正确提示正确信息,连续输错3次则报警
mm=123123 #默认密码
i=1
while [ $i -le 3 ]
do
read -p "请输入用户密码:" pwd
if [ $mm -eq $pwd ];then #原始密码与输入一直时输出密码正确
echo "密码输入正确"
exit 0 #退出脚本 返回值为0
else
echo "密码输入不正确,请重新输入"
fi
let i++
done
echo "警告密码错误三次"
[root@localhost shell]# bash 6.sh
请输入用户密码:123
密码输入不正确,请重新输入
请输入用户密码:123
密码输入不正确,请重新输入
请输入用户密码:123123
密码输入正确
7、生成八位数的随机密码,取值范围为大小写英文字母和数字
[root@localhost ~]# vim 7.sh
#!/bin/bash
#生成8位数密码
##定义密码的取值范围
String="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
##循环8次
for ((i=1;i<=8;i++))
do
##每次循环随机获取0到字符串长度减1的下标值
num=$[ RANDOM % ${#String} ]
##进行字符串的截取,每次截取1个
var=${String:num:1}
##每次追加生成的密码
passwd+=$var
done
echo "本次生成的密码为:$passwd"
[root@localhost ~]# bash 7.sh
本次生成的密码为:4qAYVK1e
[root@localhost ~]# bash 7.sh
本次生成的密码为:IenBtdv0
8、将一个 0到255 之间的十进制数转换成八位的二进制数
[root@localhost shell]# vim 8.sh
#!/bin/bash
#将一个 0到255 之间的十进制数转换成八位的二进制数
read -p "请输入0-255的整数:" num
i=1
while [ $i -le 8 ]
do
var=$[ num % 2 ] #除2取余
sum=$var$sum #将每次的余数倒序排列
num=$[ num / 2 ] #将输入的值除2得出的数继续执行上述对2取余
let i++
done
echo "二进制数为:$sum"
[root@localhost shell]# bash 8.sh
请输入0-255的整数:244
二进制数为:11110100