Shell系列(33) - 多分支if语句简介及计算器例子
多分支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"



浙公网安备 33010602011771号