循环语句脚本练习
1.计算从1到100所有整数的和
2.提示用户输入一个小于100的整数,并计算从1到该数之间所有整数的和
3.求从1到100所有整数的偶数和、奇数和
4.执行脚本输入用户名,若该用户存在,输出提示该用户已存在;若该用户不存在,提示用户输入密码,建立用户并设立其密码
5.检测指定范围主机是否通信,并将通信的主机ip输出到文件host_ip中
6.用户输入密码,脚本判断密码是否正确,输入正确提示正确信息,连续输错3次则报警
7.编写能够自动生成一个8位随机密码的脚本
8.写个逛淘宝选购商品脚本,每家商店有五种商品选购(衣服500元,裤子400元,鞋子350元,帽子150元,袜子50元),每次选购完或不买都会提示用户是否继续逛下一家商店,如果不再继续逛的话进行购物车结算总额
1.计算从1到100所有整数的和
#!/bin/bash a=1 sum=0 while [ $a -le 100 ] do sum=$[$sum + $a] let a++ done echo $sum
2.提示用户输入一个小于100的整数,并计算从1到该数之间所有整数的和
a=0 sum=0 read -p "请输入数字(0-100):" num while [ $num -le 100 ] && [ $a -le $num ] do sum=$[$sum + $a] let a++ done echo $sum
3.求从1到100所有整数的偶数和、奇数和
i=0 jh=0 oh=0 while [ $i -le 100 ] do if [ $[$i % 2] -eq 0 ];then oh=$[$oh + $i] else jh=$[$jh + $i] fi let i++ done echo "奇数和为 $jh" echo "偶数和为 $oh"
4.执行脚本输入用户名,若该用户存在,输出提示该用户已存在;若该用户不存在,提示用户输入密码,建立用户并设立其密码
#!/bin/bash read -p "请输入您的用户名:" user cat /etc/passwd | grep $user &> /dev/null a=$? while [ $a -eq 0 ] do echo "该用户已存在" exit done while [ $a -ne 0 ] do useradd $user read -p "请输入新用户密码:" passwd echo $passwd | passwd --stdin $user exit done
5.检测指定范围主机是否通信,并将通信的主机ip输出到文件host_ip中
for i in 192.168.70.{0..20} do ping -i 0.5 -c 3 -w 2 $i &> /dev/null if [ $? -eq 0 ];then echo $i >> ~/host_ip else echo "$i 不在线" fi done
6.用户输入密码,脚本判断密码是否正确,输入正确提示正确信息,连续输错3次则报警
#!/bin/bash mima=123456 for i in {1..3} do read -p "输入密码:" ps if [ $ps = $mima ];then echo "正确!" exit fi done echo "密码输入三次,无法进入!"
7.编写能够自动生成一个8位随机密码的脚本
#! /bin/bash Str="abedefghijklnmopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" for i in {1..8} do num=$[RANDOM%${#Str}] tmp=${Str:num:1} pass+=$tmp done
8.写个逛淘宝选购商品脚本,每家商店有五种商品选购(衣服500元,裤子400元,鞋子350元,帽子150元,袜子50元),每次选购完或不买都会提示用户是否继续逛下一家商店,如果不再继续逛的话进行购物车结算总额。
#!/bin/bash i=1 sum=0 while true do echo "来到第$i家商店门口" read -p "是否进入看看(yes/no)" doing while [ $doing = "yes" ] do echo "1:衣服¥200" echo "2:鞋子¥150" echo "3:手套¥40" echo "4:裤子¥155" echo "其他:放弃购买" read -p "请选择需要购买的商品序列:" num case $num in 1) echo "衣服购买成功" sum=$[sum+=200] ;; 2) echo "鞋子购买成功" sum=$[sum+=150] ;; 3) echo "手套购买成功" sum=$[sum+=40] ;; 4) echo "裤子购买成功" sum=$[sum+=155] ;; *) echo "放弃购买" esac read -p "是否继续在这家店购物(yes/no)" doing done read -p "是否继续逛街(yes/no)" going if [ $going = "yes" ] then let i++ else break fi done echo -e "一共经过$i家店\n合计购物总价:$sum"