shell小练

Posted 王大雏

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell小练相关的知识,希望对你有一定的参考价值。

题目

1、计算1~50的和值,通过循环累加的方式计算

[root@localhost ~]# vim while.sh
#!/bin/bash
i=1
sum=0
while [ $i -le 50  ]
do
        let sum+=i
        let i++
done
echo $sum
[root@localhost ~]# ./while.sh
1275

在这里插入图片描述
在这里插入图片描述

2、计算从1到100所有整数的和

[root@localhost ~]# vim demo1.sh
#!/bin/bash
i=1
sum=0
for i in {1..100}
do
        let sum+=i
        let i++
done
echo $sum
[root@localhost ~]# ./demo1.sh
5050

在这里插入图片描述
在这里插入图片描述

3、提示用户输入一个小于100的整数,并计算从1到该数之间所有整数的和


[root@localhost ~]# vim demo1.sh
#!/bin/bash
sum=0
read -p "请输入一个小于100的整数:" i
while [ $i -le 100  ]
do
        let sum+=i
        let i++
done
echo $sum
[root@localhost ~]# ./demo1.sh
请输入一个小于100的整数:50
3825

在这里插入图片描述
在这里插入图片描述

4、求从1到100所有整数的偶数和、奇数和

[root@localhost ~]# vim demo2.sh
[root@localhost ~]# ./demo2.sh
偶数和为2550
奇数和为2500
[root@localhost ~]# vim demo2.sh
#!/bin/bash
even=0
odd=0
for i in {1..100}
do
        a=$[ i%2  ]
        case $a in
        0)
                let even+=i
                let i++
        ;;
        *)
                let odd+=i
                let i++
        esac
done
echo "偶数和为$even"
echo "奇数和为$odd"

在这里插入图片描述
在这里插入图片描述

5、执行脚本输入用户名,若该用户存在,输出提示该用户已存在;若该用户不存在,提示用户输入密码,建立用户并设立其密码

[root@192 ~]# vi /root/users.txt
zhangsan
lisi
wangwu

[root@192 ~]# vim demo3.sh

#!/bin/bash

read -p "请输入用户名:" uname
groups $uname &> /dev/null
if [ $? -eq 0 ];then
        echo "该用户已存在!"
else [ $? -ne 0 ]
        read -p "请输入用户密码:" password
        useradd $uname
        echo $password | passwd --stdin $uname
fi

[root@192 ~]# ./demo3.sh
请输入用户名:zhangsan
请输入用户密码:123456
更改用户 zhangsan 的密码 。
passwd:所有的身份验证令牌已经成功更新。

在这里插入图片描述
在这里插入图片描述

6、检测指定范围主机是否通信,并将通信的主机ip输出到文件host_ip中

[root@192 ~]# vim demo4.sh
#!/bin/bash
for i in 192.168.249.{1..5}
do
        ping -c 3 $i &> /dev/null && echo "$i is online" >> host_ip
done

[root@192 ~]# chmod +x *
[root@192 ~]# ./demo4.sh

在这里插入图片描述

7、用户输入密码,脚本判断密码是否正确,输入正确提示正确信息,连续输错3次则报警

在这里插入图片描述

8、编写能够自动生成一个8位随机密码的脚本

在这里插入图片描述

9、写个逛淘宝选购商品脚本,每家商店有五种商品选购(衣服500元,裤子400元,鞋子350元,帽子150元,袜子50元),每次选购完或不买都会提示用户是否继续逛下一家商店,如果不再继续逛的话进行购物车结算总额。

[root@promote opt]#vim shopping.sh

#!/bin/bash
#每家商店有五种商品选购,每次选购完或不买都会提示用户是否继续逛下一家商店,如果不再继续逛的话进行购物车结算总额。
#衣服500元
#裤子400元
#鞋子300元
#帽子150元
#袜子50元

sum=0
for ((;;))
do
 echo "1、衣服:500元"
 echo "2、裤子:400元"
 echo "3、鞋子:300元"
 echo "4、帽子:150元"
 echo "5、袜子:50元"

read -p "请选择您想要购买的商品:" a
case $a in
1)
  echo "您已购买了衣服500元"
  let sum+=500
;;
2)
  echo "您已购买了裤子400元"
  let sum+=400
;;
3)
  echo "您已购买了鞋子300元"
  let sum+=300
;;
4)
  echo "您已购买了帽子150元"
  let sum+=150
;;
5)
  echo "您已购买了袜子50元"
  let sum+=50
;;
*)
  echo "欢迎下次光临,您本次消费共计$sum元"
break
esac

read -p "您选择继续购物还是结算购物车?(y/n)" b
if [ $b = y ] ; then
continue
elif [ $b = n ] ; then
  echo "欢迎下次光临,您本次购物共计消费$sum元"
break
else
  echo "请您正确输入"      
fi
done

以上是关于shell小练的主要内容,如果未能解决你的问题,请参考以下文章

shell小练(图形千变万化)

爬虫小练

代码片段:Shell脚本实现重复执行和多进程

django小练习之主机管理界面

数位dp小练

Java反射小练之手写BeanUtils的copyProperties(Upgrade)