叶知秋丶
2018-06-29 15:12
#!/bin/bash #对输入的值进行+-*/运算 #先让提示输入数值,并检测是否输入的值有效(为数值型) #提示输入运算符,并检测是否有效 #根据输入的值、运算符是否有/无效进行循环判断和操作 #提示用户输入想要计算的数值和运算符,并将值赋予变量 read -t 10 -p "请输入要计算的数值1 : " num1 read -t 10 -p "请输入运算符: " a read -t 10 -p "请输入要计算的数值2 : " num2 #判断输入的值是否为非空 if [ -n"$num1" -a -n"$num2" -a -n"$a" ] then #判断输入的是否为数值类型,用sed转换命令来检测,将数值转换为空值,并将空值赋予变量 tes1=$(echo $num1 | sed 's/[0-9]//') tes2=$(echo $num2 | sed 's/[0-9]//') #检测空值的变量是否为空 if [ -z$tes1 -a -z$tes2 ] then #检测运算符是否为非空 if [ $a == "+" ];then echo "$num1 $a $num2" = $(($num1 + $num2)) elif [ $a == "-" ];then echo "$num1 $a $num2" = $(($num1 - $num2)) elif [ $a == "*" ];then echo "$num1 $a $num2" = $(($num1 * $num2)) elif [ $a == "/" ];then echo "$num1 $a $num2" = $(($num1 / $num2)) else echo"输入正确的运算符" fi else echo"输入的值不是数值类型" fi else echo"请输入数值或运算符" fi
发现原因了, 是因为在进行条件判断时,变量$a没有加"" 号,所导致,加上之后就好了,但是没加之前为什么+ - / 都可以正常运算???
shell编程之条件判断与流程控制
35507 学习 · 139 问题
相似问题