誰(shuí)來(lái)幫我解答一下這段代碼有什么問(wèn)題
#!/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
2015-11-02
錯(cuò)誤點(diǎn):
1、單詞寫錯(cuò):number1不存在,上面寫的是number 等等
2、將運(yùn)算符替換為空,運(yùn)算符需要進(jìn)行轉(zhuǎn)義,否則系統(tǒng)把運(yùn)算符當(dāng)成正則表達(dá)式了
#!/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
#判斷輸入的三個(gè)參數(shù)是否為非空
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')
#判斷替換后的三個(gè)參數(shù)的新value是否為空,為空則表示輸入的參數(shù)格式正確
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