kkkbbb
2015-07-20 19:06
#!/bin/bash
read -t 30 -p "please input two number:" number
read -t 30 -p "please input yunsuanfu:" number2
read -t 30 -p "please input number" number3
if [ -n "$number" -a -n "$number2" -a -n "$number3" ]
then
test1=$(echo number | sed 's/[0-9]//g')
test2=$(echo number3 | sed 's/[0-9]//g')
test3=$(echo number2 | sed 's/[+-*/]//g')
if [-z "$test1" -a -z "$test -a -z "$test" ]
then
case "$number2" in
"+")
echo $(( "$number1" + "$number2" ))
;;
"*")
echo $(( "$number1 * "$number2))
;;
"-")
echo $(( "$number1" - "$number2" ))
;;
esac
fi
fi
错误点:
1、单词写错:number1不存在,上面写的是number 等等
2、将运算符替换为空,运算符需要进行转义,否则系统把运算符当成正则表达式了
#!/bin/bash
read -t 30 -p "please input two number:" number1
read -t 30 -p "please input yunsuanfu:" number2
read -t 30 -p "please input number:" number3
#判断输入的三个参数是否为非空
if [ -n "$number1" -a -n "$number2" -a -n "$number3" ]
then
test1=$(echo "$number1" | sed 's/[0-9]//g')
test2=$(echo "$number2" | sed 's/[\+\-\*\/]//g')
test3=$(echo "$number3" | sed 's/[0-9]//g')
#判断替换后的三个参数的新value是否为空,为空则表示输入的参数格式正确
if [ -z "$test1" -a -z "$test2" -a -z "$test3" ]
then
case "$number2" in
"+")
echo $(($number1 $number2 $number3))
;;
"*")
echo $(($number1 $number2 $number3))
;;
"-")
echo $(($number1 $number2 $number3))
;;
esac
fi
fi
shell编程之条件判断与流程控制
35507 学习 · 139 问题
相似问题