ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

shell脚本的案例解读

2021-12-26 23:03:11  阅读:172  来源: 互联网

标签:shell read sum echo 解读 案例 购买 fi 100


shell脚本的案例解读

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

方法一:for

#!/bin/bash
#
sum=0
for ((i=1;i<=100;i++))
do
    sum=$[$i+$sum]
done
  echo "0-100的和为:" $sum

二方法:while

#!/bin/bash
#
i=0
sum=0
while [ $i -le 100 ]
do
  sum=$[$sum+$i]
  let i++
done
  echo "1-100的和为:$sum"

三方法:while

#!/bin/bash
#
i=0
sum=0
while [ $i -le 100 ]
do
  sum=$[$sum+$i]
  let i++
done
  echo "1-100的和为:$sum"

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

方法一:for

#!/bin/bash
#
sum=0
read -p "请输入一个小于100的整数:" b
if [ $b -gt 0 -a $b -le 100 ];then
  for ((i=1;i<=100;i++))
  do
    if [ $i -le $b ];then
    sum=$[$sum+$i]
    else
    break
    fi

  done

echo "1到$b之间所有整数的和为:$sum"
fi

方法二:while

#!/bin/bash
#
i=0
sum=0
read -p "请输入一个小于100的整数:" b
if [ $b -gt 0 -a $b -le 100 ];then
  while [ $i -le $b ]
  do
    sum=$[$sum+$i]
    let i++
  done
    echo "1到$b之间所有整数的和为:$sum"
else
  echo "请输入0-100区间的整数"
fi

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

方法一:for

#!/bin/bash
#
sum1=0
sum2=0
for ((i=0;i<=100;i++))
do
  a=`echo $[$i%2]`
  if [ $a -eq 1 ] ;then
    sum1=$[$sum1+$i]
  else
    sum2=$[$sum2+$i]
  fi
done
  echo "0-100之间的偶数和为:$sum2"
  echo "0-100之间的奇数和为:$sum1"

方法二:while

#!/bin/bash
#
sum1=0
sum2=0
i=0
while [ $i -le 100 ]
do
  a=`echo $[$i%2]`
  if [ $a -eq 0 ]
  then
    sum2=$[$sum2+$i]
    let i++
  else
    sum1=$[$sum1+$i]
    let i++
  fi
done
  echo "0-100之间的偶数和为:$sum2"
  echo "0-100之间的奇数和为:$sum1"

四、淘宝选购商品脚本

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

#!/bin/bash
#
sum=0

for ((i=1; ;i++))
do
sum=$sum
  echo "可购买的商品为衣服(500元),裤子(400元),鞋子(350元),帽子(150元),袜子(50元)"
  echo "-------------------------------请输入相应的编号购买产品-------------------------------"
  echo "-----------1:衣服-------2:裤子-------3:鞋子-------4:帽子-------5:袜子------------"
  read -p "相应编号:" goods

  case $goods in
  1)
    echo    "---------------------------------------------------"
    read -p "请确定是否购买,按“1”确定购买,不想购买请按任意数字" a
    if [ $a -eq 1 ];then
    sum=$[$sum+500]
      echo    "-------------------------------------------------"
      read -p "感谢购买此商品,按任意数字键进入下一家店;按0退出" aa
        if [ "$aa" -eq 0 ];then
          echo "你本次购买了$i 件商品,一共$sum 元。"
          break
        fi
    fi
  ;;
  2)

    echo    "--------------------------------------------------------"
    read -p "请确定是否购买,按“1”确定购买,不想购买请按任意数字" a
    if [ $a -eq 1 ];then
    sum=$[$sum+400]
      echo    "------------------------------------------------------"
      read -p "感谢购买此商品,按任意数字键进入下一家店;按0退出" aa
        if [ "$aa" -eq 0 ];then
          echo "你本次购买了$i 件商品,一共$sum 元。"
          break
        fi
    fi
  ;;
  3)

    echo    "--------------------------------------------------------"
    read -p "请确定是否购买,按“1”确定购买,不想购买请按任意数字" a
    if [ $a -eq 1 ];then
    sum=$[$sum+350]
      echo    "------------------------------------------------------"
      read -p "感谢购买此商品,按任意数字键进入下一家店;按0退出" aa
        if [ "$aa" -eq 0 ];then
          echo "你本次购买了$i 件商品,一共$sum 元。"
          break
        fi
    fi
  ;;
  4)

    echo    "--------------------------------------------------------"
    read -p "请确定是否购买,按“1”确定购买,不想购买请按任意数字" a
    if [ $a -eq 1 ];then
    sum=$[$sum+150]
      echo    "------------------------------------------------------"
      read -p "感谢购买此商品,按任意数字键进入下一家店;按0退出" aa
        if [ "$aa" -eq 0 ];then
          echo "你本次购买了$i 件商品,一共$sum 元。"
          break
        fi
    fi
  ;;
  5)

    echo    "--------------------------------------------------------"
    read -p "请确定是否购买,按“1”确定购买,不想购买请按任意数字" a
    if [ $a -eq 1 ];then
    sum=$[$sum+50]
      echo    "------------------------------------------------------"
      read -p "感谢购买此商品,按任意数字键进入下一家店;按0退出" aa
        if [ "$aa" -eq 0 ];then
          echo "你本次购买了$i 件商品,一共$sum 元。"
          break
        fi
    fi
  ;;
  *)
    echo "请输入正确的商品编号"
  esac
done                                                          

五菱形的输出

#!/bin/bash
#上面的三角形
read -p "请输入一个奇数来建立菱形:" z
y=$[z/2]
x=$[y+1]
for ((a=1;a<=x;a++))   #行数
do
  for ((b=y; b>=a;b--))  #列数
  do
    echo -n " "
  done
  i=$[($a*2)-1]
  for ((c=1;c<=i;c++))   #列数
  do
    echo -n "*"
  done
  echo " "
done
#下面的三角形
for ((a=1; a<=y; a++))
do
  for ((b=1; b<=a; b++))
  do
    echo -n " "
  done
  i=$[z-2*$a]
  for ((c=1; c<=i; c++))
  do
    echo -n "*"
  done

  echo " "
done

标签:shell,read,sum,echo,解读,案例,购买,fi,100
来源: https://blog.csdn.net/weixin_62452835/article/details/122162491

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有