多分支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"

最新文章

  1. BFC之浅析篇
  2. 经典功率谱估计及Matlab仿真
  3. iOS中的UI
  4. log4j日志文件配置说明及使用
  5. JQuery中serialize()、serializeArray()和param()方法示例介绍
  6. the OS maintains a number of queues
  7. 织梦dede_archives文章主表详细介绍
  8. MVC3中 ViewBag、ViewData和TempData的使用和区别(转发:汴蓝)
  9. python学习第十四天 -面向对象编程基础
  10. ARMv8 Linux内核head.S源码分析
  11. 深度学习实践系列(3)- 使用Keras搭建notMNIST的神经网络
  12. 安卓高级4 第三方库SlidingMenu的使用
  13. MySql Query Cache 优化
  14. PHP7 学习笔记(十六)Yaconf 一个高性能的配置管理扩展
  15. Oracle为表或字段添加备注
  16. 一,Serializer和ModelSerializer
  17. Java - fail-fast机制
  18. 高斯消去、追赶法 matlab
  19. 基本的RAID介绍
  20. idea搭建javaweb项目 Artifacts生成

热门文章

  1. Sqli-Labs less17-19
  2. 《JERRY Hexo & GitHub 静态网站搭建说明》
  3. mongoose 更新数据时不验证数据(忽略设定的集合规则)的问题
  4. WPF : ControlTemplate和DataTemplate的区别
  5. C++面试题(四)——智能指针的原理和实现
  6. HttpClient4.3教程 第四章 HTTP认证
  7. 初识javaScript(慕课网学习笔记)
  8. JAVA中的策略模式strategy
  9. linux上传下载文件(转载https://www.jb51.net/article/143112.htm)
  10. Kickstart部署多系统