不会做 还不来看?! for/while常用循环例题 shell脚本
Posted wl.88888888
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了不会做 还不来看?! for/while常用循环例题 shell脚本相关的知识,希望对你有一定的参考价值。
for/while常用循环例题
- 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所有整数的和
for:
#!/bin/bash
a=0
for i in $(seq 1 100)
do
a=$[$a+$i]
done
echo "1-100所有整数的和为:" $a
while:
2.提示用户输入一个小于100的整数,并计算从1到该数之间所有整数的和
for:
#!/bin/bash
sum=0
read -p "请输入小于100的整数: " zs
for ((i=1;i<=$zs;i++))
do
sum=$[$sum+$i]
done
echo "从1加到$zs的整数和为: $sum"
while:
#!/bin/bash
a=0
sum=0
read -p "请输入小于100的整数: " zs
while [ $a -le $zs ]
do
sum=$[$sum+$a]
let a++
done
echo "从1加到$zs的整数和为: $sum"
3.求从1到100所有整数的偶数和、奇数和
for:
#!/bin/bash
a=0
for i in {1..100..2}
do
a=$[$a+$i]
done
echo "1到100所有奇数的和为: " $a
b=0
for i in {2..100..2}
do
b=$[$b+$i]
done
echo "1到100所有偶数的和为:" $b
while:
#!/bin/bash
a=0
sum=0
sum2=0
while [ $a -le 100 ]
do
if [ $((a%2)) -eq 0 ];then
sum=$[sum+a]
else
sum2=$[sum2+a]
fi
let a++
done
echo "奇数和为: $sum2"
echo "偶数和为: $sum"
while:
#!/bin/bash
a=0
b=1
sum=0
sum2=0
while [ $a -le 100 ]
do
sum=$[sum+a]
let a+=2
while [ $b -le 100 ]
do
sum2=$[sum2+b]
let b+=2
done
done
echo "奇数和为: $sum2"
echo "偶数和为: $sum"
4.执行脚本输入用户名,若该用户存在,输出提示该用户已存在;若该用户不存在,提示用户输入密码,建立用户并设立其密码
#!/bin/bash
read -p "输入用户名:" user
id $user &> /dev/null
if [ $? = 0 ];then
echo "该用户已存在!"
else useradd $user
read -p "输入密码:" ps
echo $ps | passwd --stdin $user
fi
5.检测指定范围主机是否通信,并将通信的主机ip输出到文件host_ip中
#!/bin/bash
for i in 192.168.116.{80..90}
do
ping -c 3 -i 0.5 -w 2 $i &> /dev/null
if [ $? = 0 ];then
echo "$i主机在线"
echo $i >> /opt/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"
接上:
以上是关于不会做 还不来看?! for/while常用循环例题 shell脚本的主要内容,如果未能解决你的问题,请参考以下文章
Shell脚本------循环语句(for,while,until循环语句)