不会做 还不来看?! for/while常用循环例题 shell脚本

12 篇文章 1 订阅

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"
            

在这里插入图片描述
接上:
在这里插入图片描述

在这里插入图片描述

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

W.scaler

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值