实验要求:

1、编写一个名为sum.sh的脚本,提示用户输入一个小于100的整数,并计算从1到该数之间所有整数的和

2、编写一个名为tar.sh的脚本,用来解压.tar.gz或.tar.bz2格式的压缩文件,要求采用case语句

实验步骤:

(一)

vi sum.sh

#!/bin/bash

# this is sum

while :      #循环条件为真,等同于while true,如果没有exit 0或者break 则一直执行循环

do

read -p  "请输入一个1-100的整数: " nu   #把屏幕输出的数字赋值给变量nu

expr $nu + 0 &> /dev/null     #此条语句作用是判断这个数字是否为0或者不是整数,并且不在屏幕显示这个数

if [ $? -ne 0 ] || [ $nu -ge 100 ]   #如果上条语句是非0的结果则表示错误,或者这个数大于等于100也不符合实验要求

then   echo "您输入的$nu不符合要求请重新输入:"  #提示错误信息要求重新输入

else        #不是以上结果则执行下面的语句

s=0 i=1     #给变量初始化赋值

while [ $i -le $nu ]      #因为当输入的数字小于100都要执行相加,所以当i大于这个数时停止循环

do

s=$(expr $s + $i)  #s从0开始,i从1开始,把每次循环的结果赋值给s然后继续和i相加,一直加到输入的整数

let i++      #每循环一次i+1

done

echo "1-$nu之间的整数和是:$s"  #将结果输出,停止循环

break

fi

done

验证结果:

(二)

vi tar.sh

#!/bin/bash

# this is test

read -p "请输入您想解压的压缩文件:" f    #将输入的文件名称赋值给变量f

s=$(file $f | awk '{print $2}')      #判断这个文件是哪种格式的压缩文件

case $s in   #若结果为gzip则用gzip解压

gzip)

echo "将用gzip工具为该文件解压"

tar -zvxf $f

;;

bzip2)       #若结果为bzip2则用bzip2解压

echo "将用bzip工具为该文件解压"

tar -jxvf $f

;;

*)           #其他结果则表示不是压缩文件,屏幕输出错误信息

echo "不是标准的压缩文件"

esac

验证结果:

转载于:https://blog.51cto.com/shengjie/1584881

2个简单shell脚本(if,while,case语句)相关推荐

  1. shell脚本中的case语句使用要点

    1.双分号(;;) 用于case语句中一个分支的结束. 可类比C++里面switch...case语句,在case语句之后,若所有语句都输完,后面跟着的"break;". 2.星号 ...

  2. Shell基础(一):Shell基础应用、简单Shell脚本的设计、使用Shell变量、变量的扩展应用...

    一.Shell基础应用 目标: 本案例要求熟悉Linux Shell环境的特点,主要练习以下操作: 1> 切换用户的Shell环境        2> 练习命令历史.命令别名        ...

  3. Linux的简单shell脚本中修改文件操作

    Linux的简单shell脚本中修改文件操作 Linux Shell常用技巧(三) sed 八.流编辑器sed 8.1 sed简介 sed是stream editor的缩写,一种流编辑器,它一次处理一 ...

  4. 如何获取shell脚本中某条语句的执行时间

    有没有办法获取shell脚本中某条语句的执行时间 如果要获得语句执行所花的时间 用time命令 在语句的前面加上time命令 输出结果一共3列 比如我执行time sleep 5 real    0m ...

  5. 第八课-第二讲 08_02_bash脚本编程之七 case语句及脚本选项进阶

    第八课-第二讲 08_02_bash脚本编程之七 case语句及脚本选项进阶 一. 面向过程 控制结构 顺序结构 选择结构 循环结构 选择结构 if语句 单分支,双分支,多分支 case 语句 cas ...

  6. Shell脚本break和continue语句应用

    记录:436 场景: Shell脚本break和continue语句应用.在for.while循环中使用break和continue语句. 版本:CentOS Linux release 7.9.20 ...

  7. 简单shell脚本编程入门

    简单的shell编程入门: 步骤一: 编写一个简单的shell程序: Shell编程开头标准写法(固定的),设定Shell解释器 步骤二: 添加可执行权限 也可以不添加权限(使用sh + 脚本名称)[ ...

  8. 【Linux环境】简单Shell脚本实现定时备份文件、压缩、删除超时文件操作(showDoc文件备份脚本举例)

    Shell脚本备份数据的博文不少,这个应该算是比较简单的,没有复杂逻辑,分享一下. 1.备份脚本 Shell脚本的每行命令一定要在测试环境进行测试,否则会有意想不到的惊吓

  9. html怎么shell脚本语言,简单shell脚本例子

    为什么要使用Shell脚本 使用脚本编程语言的好处是,它们多半运行在比编译型语言还高的层级,能够轻易处理文件与目录之类的对象.缺点是:它们的效率通常不如编译型语言.不过权衡之下,通常使用脚本编程还是值 ...

最新文章

  1. 天哪!原来PWM这么简单
  2. 台达b3伺服参数设置方法_2020东莞清溪台达自动化配件回收厂家直购
  3. 数据结构-链表2-链式存储
  4. 真的很OK!雷军成科创板大赢家 相关投资企业3家已上市
  5. 汉字转拼音,TinyPinyin、Pinyin4j与JPinyin哪个库更快
  6. C#用yield模仿js的带 index的foreach
  7. shopnc数据库 批量修改商品价格
  8. 空间参考(一)---墨卡托投影、高斯-克吕格投影、UTM投影的异同
  9. pcb怎么画边框_PCB设计--PCB画图技巧
  10. windows环境下:安装MySQL8.0;同时安装MySQL5.7
  11. kde下gwenview启动慢,甚至几十秒才能启动
  12. dw读取access中的图片_DreamWeaver入门必看:ACCESS数据库(三)
  13. 记一次小米路由器任意文件读取漏洞
  14. 【面试】数据仓库面试经验总结
  15. write字符串python_Python-write()与writelines()和连接字符串
  16. Photon Pun
  17. 高德地图在H5页面中的使用(VUE)
  18. iptables使用limit控制新建连接速率
  19. FF4J(特性框架)简介及入门
  20. 设计模式入门(王者荣耀之设计英雄篇)

热门文章

  1. java抽奖_Java实现抽奖功能
  2. python猜数字统计游戏次数_猜数字游戏(Python)
  3. python 报价_python基础教程_查询价格
  4. 批量替换_【脚本】AE照片墙模板图片批量替换脚本Multi Replacer
  5. mongodb 导出一条数据_将 MongoDB 导出成 csv
  6. c语言程序设计对称数,c语言程序设计--对称数
  7. 485不用双绞线可以吗_刘兴亮丨有了北斗,中国可以不用GPS吗
  8. if js 判断成绩等级_Java判断语句的语法和使用
  9. Vue使用v-for绑定两个属性拼接渲染界面
  10. Spring框架IOC的实现