当前位置: 首页 > news >正文

shell脚本的相关练习--->分支结构---->循环结构

一.使用case...in实现等级判断,输入成绩,判断等级

列如:90-100:A,70-89:B,0-69:C

#!/bin/bash
read -p"请输入成绩:" sorce
a=$((sorce/10))
case $a in9|10)echo A;;7|8)echo B;;0|1|2|3|4|5|6)          echo C;;
esac

二.完成任意输入一个数,使用while循环计算各个位数字之和

#!/bin/bash2 read -p"请输入一个数:" num3 while [ $num -ne 0 ]                                                                                                                                                                                   4 do5     a=$((num "%" 10))6     sum=$((sum "+" a))7     num=$((num "/" 10))8 done9 echo 各个数字之和为:$sum

运行结果为:

三.输入一个字符串,使用while循环实现字符串逆置

#!/bin/bash
read -p"请输入字符串:" str
len=${#str}
for((i=1;i<=len;i++))
doecho -n "${str:0-$i:1}" 
done
echo

运行结果:

四.循环家目录下的所有内容,计算家目录下 目录的个数,普通文件的个数,使用for循环

#!/bin/basharr=(`ls ~`)
len=${#arr[*]}
qt=0
for i in `seq 0 1 $(($len-1))`
doif [ -d ~/${arr[$i]} ]then((qt++))fi
done
echo 家目录下目录数量为$qt
qt=0
for i in `seq 0 1 $(($len-1))`
doif [ -f ~/${arr[$i]} ]then((qt++))fi
done
echo 家目录下普通文件数量为$qt

运行结果:

五.打印图形

   *

  ***

 *****

*******

#!/bin/bash
read -p"请输入打印层数:" num
for((i=1;i<=num;i++))
doj=$((num-i))for((l=0;l<j;l++))doecho -n " "doneq=$((2*i-1))for((k=0;k<q;k++))        doecho -n "*"doneecho
done

运行结果:

六.输入一个数组,请实现冒泡排序,插入排序

#!/bin/bash
read -p"请输入几组数据:" -a arr
#冒泡
for((i=1;i<${#arr[*]};i++))
dofor((j=0;j<${#arr[*]}-i;j++))doif [ ${arr[j]} -ge ${#arr[j+1]} ] thent=${arr[j]}arr[j]=${arr[j+1]}arr[j+1]=$tfidone
done
echo ${arr[*]}

运行结果:

七.输入用户名和密码(加密输入),实现密码的三次登录 默认用户名admin 密码1234 账户存款10000

如果登录失败,则提示

第1次登录失败,还有2次机会

第2次登录失败,还有1次机会

第3次登录失败,账户被锁定

如果登录成功,则显示银行页面

1.账户余额

2.取款

3.存款

如果选择1,则打印当前的余额

如果选择2,则输入取款金额,如果取款金额大于实际金额,则提示账户余额不足,请重新输入,如果账户余额小于等于实际金额,则提示取款成功,打印剩余金额

如果选择3,则输入存款金额,并提示 存款成功,余额的值

#!/bin/bash
money=10000
for((i=1;i<=3;i++))
doread -p"输入用户名:" adminread -p"输入密码:" passwdif [ $admin != "admin" ] || [ $passwd != "1234" ]then echo 第$i次登录失败,还有$((3-i))次机会elseselect choice in 存款余额 取款 存款 docase $choice in                                       "存款余额")echo $money;;"取款")read -p"请输入取款金额:" aif [ $a -gt $money ]thenecho 账户余额不足,请重新输入elseecho 提款成功,您的余额为:$((money-a))fi;;"存款")read -p"请输入存款金额:" becho 存款成功,您的余额为:$((b+money));;*)  echo error;;esac    donefi
done

运行结果:


http://www.mrgr.cn/news/92561.html

相关文章:

  • Asp.Net Web API| React.js| EF框架 | SQLite|
  • 为AI聊天工具添加一个知识系统 之125 详细设计之66 智能语义网络
  • Axure PR 9 中继器 03 翻页控制
  • 51c嵌入式~电路~合集13
  • Mac本地部署Deep Seek R1
  • 如何正确理解mAP、精度、召回率等概念
  • Java类中的this操作
  • 【STM32F103ZET6——库函数】6.PWM
  • 【2025力扣打卡系列】子集型回溯
  • Ubuntu20.04下各类常用软件及库安装汇总
  • 什么是Ollama?什么是GGUF?二者之间有什么关系?
  • Hadoop最新版本hadoop-3.4.1搭建伪分布式集群以及相关报错解决
  • 2004-2024年光刻机系统及性能研究领域国内外发展历史、差距、研究难点热点、进展突破及下一个十年研究热点方向2025.2.27
  • 分布式Session
  • 【01】Cocos游戏开发引擎从0开发一款游戏-cocos环境搭建以及配置-Cocos Creator软件系统下载安装-node环境-优雅草卓伊凡
  • Mobaxterm服务器常用命令(持续更新)
  • UE5 Gameplay框架及继承关系详解
  • Windows下不建议使用C/C++运行库的本地化功能
  • 计算机工具基础(五)——Vim
  • KubeKey一键安装部署k8s集群和KubeSphere详细教程