shell case语句中乘法运算*号与最后匹配符号识别重叠,如何区分

yzws1994 发布于 2016/10/31 15:22
阅读 122
收藏 0

一个小脚本,利用case语句实现函数参数传递,脚本内容用于实现简单的四则运算。

加减法,除法测试均通过,但是乘法测试不通过,不是报错,找到问题是乘法运算符号*号和最后的任意匹配符号重叠,例如:输入 2 * 3 ,程序总是识别为最后一项任意匹配,因此输出最后一项的信息“Erro input!”

请老鸟教教解决方法!



#!/bin/bash
calcu()
{
	if [ $# -ne 3 ]
	then	echo "Number of parameters IS NOT 3! Check please!"
	fi
	let "s=0"
	case $2 in
	+)
		let "s=$1+$3"
		echo "$1 + $3 = $s";;
	-)
		let "s=$1-$3"
		echo "$1 - $3 = $s";;
	\*)
		let "s=$1*$3"
		echo "$1 * $3 = $s";;
	\/)
		let "s=$1/$3"
		echo "$1 / $3 = $s";;
	*)
		echo "Error input!";;
	esac
}
echo "Please input:"
read a b c
calcu $a $b $c



加载中
返回顶部
顶部