各种类型的运算

自定义四则运算

需求

开发一个计算脚步:

要求接受用户输入的数字和运算符,对用户输入信息(数字和运算符)进行判断,最终得出结果

脚步实现

#!/bin/bash

print_useage(){
    printf "Please enter an integer!!!\n"
    exit 1
}

read -p "Please input your number: " firstnum

if [ -n "`echo ${firstnum} | sed 's/[0-9]//g'`" ]
    then
        print_useage
fi

read -p "Please input your operator: " operator

if [ "${operator}" != "+" ] && [ "${operator}" != "-" ] && [ "${operator}" != "*" ] && [ "${operator}" != "/" ]
    then
        echo "只允许输入+|-|*|/"
        exit 2
fi

read -p "Please input second number: " secondnum

if [ -n "`echo ${secondnum} | sed 's/[0-9]//g'`" ]
    then
        print_useage
fi

echo "${firstnum}${operator}${secondnum}结果是:$((${firstnum}${operator}${secondnum}))"
#echo "${firstnum}${operator}${secondnum}结果是:$((firstnum${operator}secondnum))" #也可以

知识点解析

双小括号的数学运算

判断用户的输入是否是整数

不完美方式

使用 expr 进行计算,只要输入是整数,expr 命令的返回值为0(唯一特殊情况:计算结果为0的时候返回值为1),然后对返回值进行判断即可确定用户输入是否为整数

此案例不考虑计算结果为0的特殊情况

相对完美方式(此方式需注意输入为空的情况,见脚本内说明)

test 命令使用比较操作符时需要 integer 类型做比较,如果是别的类型就会报错

完美方式

整数计算器

Last updated