多分支if条件语句

  • if [ 条件判断式1 ]
  •   then
  •     当条件判断式1成立时,执行程序1
  • elif [ 条件判断式2 ]
  •   then
  •     当条件判断式2成立时,执行程序2
  • ...省略更多条件...
  • else
  •   当所有条件都不成立时,最后执行此程序
  • fi

exit 自定义错误码:返回错误码,程序退出不再运行,后面的脚本程序不再执行

计算器

需求分析

  • 有没有输入内容
  • 判断输入的内容是不是数值
  • 判断输入的运算符
  • 执行运算符操作

脚本

  • #!/bin/bash
  • #声明result整型变量
  • declare -i result
  • #接收用户输入参数
  • read -p "请输入第一个数字:" -t 30 num1
  • read -p "请输入运算符:" -t 30 ope
  • read -p "请输入第二个数字:" -t 30 num2
  • #-n 判断用户输入是否非空,非空为真;-a 多个判断同时为真,返回为真
  • if [ -n "$num1" -a -n "$ope" -a -n "$num2" ]
  •   then
  •   #使用sed替换,查找用户输入内容有数字的替换为空值
  •   test1=$(echo "$num1" | sed 's/[0-9]//g')
  •   test2=$(echo "$num2" | sed 's/[0-9]//g')
  •   #-z 判断字符是否为空,为空返回真
  •   if [ -z "$test1" -a -z "$test2" ]
  •     then
  •     if [ "$ope" == '*' ]
  •       then
  •       result=$(($num1*$num2))
  •     elif [ "$ope" == '+' ]
  •       then
  •       result=$(($num1+$num2))
  •     elif [ "$ope" == '-' ]
  •       then
  •       result=$(($num1-$num2))
  •     elif [ "$ope" == '/' ]
  •       then
  •       result=$(($num1/$num2))
  •     else
  •       echo "运算符格式输入错误"
  •       #返回错误码10
  •       exit 10
  •     fi
  •   else
  •     echo "数字输入错误"
  •     exit 11
  •   fi
  • else
  •   echo "请输入数字"
  • fi
  • echo "$num1 $ope $num2 = $result"

Shell系列(33) - 多分支if语句简介及计算器例子的更多相关文章

  1. Shell系列(34) - 多分支case语句简介及实例

    多分支case条件语句 概念 case语句和if...elif...else语句一样都是多分支条件语句,不过和if多分支条件语句不同的是,case语句只能判断一种条件关系,而if语句可以判断多种条件关 ...

  2. Linux Shell系列教程之(十三)Shell分支语句case … esac教程

    本文是Linux Shell系列教程的第(十三)篇,更多Linux Shell教程请看:Linux Shell系列教程 分支语句非常实用,基本上高级语言都支持分支语句(python 没有),大多数都使 ...

  3. Linux Shell系列教程之(一)Shell简介

    本文是Linux Shell系列教程的第(一)篇,更多shell教程请看:Linux Shell系列教程 想要学习linux,shell知识必不可少,今天就给大家来简单介绍下shell的基本知识. S ...

  4. Linux Shell系列教程之(十五) Shell函数简介

    本文是Linux Shell系列教程的第(十五)篇,更多Linux Shell教程请看:Linux Shell系列教程 函数可以将一个复杂功能划分成若干模块,从而使程序结构更加清晰,代码重复利用率更高 ...

  5. shell编程之case分支语句

    shell编程之case分支语句 case分支语句和if的多分支语句很相似. if多分支语句一般用在有(区间范围)的地方 :例如:0-100之间. if需要判断多个不同的条件. case的分支语句用在 ...

  6. (转)Linux Shell系列教程之(十四) Shell Select教程

    本文属于<Linux Shell 系列教程>文章系列,该系列共包括以下 18 部分: Linux Shell系列教程之(一)Shell简介 Linux Shell系列教程之(二)第一个Sh ...

  7. Linux Shell系列教程

    学习Linux Shell知识,就来Linux大学网(Linuxdaxue.com)! 本系列适合Linux初学者,属于Linux入门级教程,主要介绍了Shell的分类.语法格式以及脚本的使用和编写格 ...

  8. Linux Shell系列教程之(十四) Shell Select教程

    本文是Linux Shell系列教程的第(十四)篇,更多Linux Shell教程请看:Linux Shell系列教程 在上一篇文章:Linux Shell系列教程之(十三)Shell分支语句case ...

  9. Linux Shell系列教程之(九)Shell判断 if else 用法

    本文是Linux Shell系列教程的第(九)篇,更多shell教程请看:Linux Shell系列教程 判断语句是每个语言都必不可少的关键语法,Shell命令当然也不例外.今天就给大家介绍下Shel ...

随机推荐

  1. nohup 启动命令

    start.sh #!/bin/bash nohup $PWD/node_exporter > /dev/null 2>&1 &

  2. windows中抓取hash小结(上)

    我上篇随笔说到了内网中横向移动的几种姿势,横向移动的前提是获取了具有某些权限的用户的明文密码或hash,正愁不知道写点啥,那就来整理一下这个"前提"-----如何在windows系 ...

  3. linux ftp ubuntu18.04 实测有效 完整方法 vsftpd

    https://linuxize.com/post/how-to-setup-ftp-server-with-vsftpd-on-ubuntu-18-04/ 除了此链接完整有效,其他网友 大都残缺不全 ...

  4. 数据结构与算法-排序(八)计数排序(Counting Sort)

    摘要 计数排序本质就是统计不同元素出现的次数,然后将元素依次从小到大放置,每个元素看统计的次数,就紧挨着放置几个同样的元素. 看似简单的处理,在算法中,会依据统计的元素次数推算出每个元素的索引位置,这 ...

  5. jdbc获取PreparedStatement最终执行的sql语句

    //直接打印PreparedStatement对象 System.out.println(ps); 输出结果: com.mysql.jdbc.JDBC42PreparedStatement@5f205 ...

  6. kafka零数据丢失的配置方案

    讨论一下kafka参数的配置 1.acks 参数配置 acks这个参数有三个值:0,1,-1,但是不用的参数对应的含义不同,那如果我们想要保证数据不丢失,acks 值应该设置为哪个参数呢? 0:代表生 ...

  7. ES6 promise的应用

    html部分 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <me ...

  8. T-SQL - query03_去重查询|模糊查询|排序|分组|使用函数

    时间:2017-09-29 整理:byzqy 本篇仍以"梁山好汉"数据表为例,介绍几个常用的 T-SQL 查询语句: 去重查询,关键字:distinct 使用通配符模糊查询,关键字 ...

  9. Spring Boot 入门系列(二十三)整合Mybatis,实现多数据源配置!

    d之前介绍了Spring Boot 整合mybatis 使用注解方式配置的方式实现增删改查以及一些复杂自定义的sql 语句 .想必大家对spring boot 项目中,如何使用mybatis 有了一定 ...

  10. uniapp H5 打包并部署到 nginx

    个人也是了百度了挺久的了,花费的时间( 俩个半小时 ) uniapp 的打包首先要先配置,配置好了才能去进行打包,如图所示. 这只是第一步. 注意: 1.运行基础路径最好用 ./ ,如果配置了其他请自 ...