請問:錯誤操作符時(輸入2,a,2),為什么計算器腳本進不去第三個判斷的else分支(目前至允許加法運算);單引號試過,轉義加號也不行,奔潰啦
#!/bin/bash
#計算器腳本
read -t 30 -p "please input num1:" num1
read -t 30 -p "please input opt:" opt
read -t 30 -p "please input num2:" num2
#判斷輸入的內容是否為空,-z表示是否為空
if [ -z "$num1" -o -z "$num2" -o -z "$opt" ]
? ? ? ? then
? ? ? ? echo "null input"
? ? ? ? exit 10
fi
#判斷num1與num2是否為純數字
? ? ? ? #使用sed將數字替換為空
test1=$(echo "$num1" | sed 's/[0-9]//g')
test2=$(echo "$num2" | sed 's/[0-9]//g')
? ? ? ? #若test1或test2不為空,則證明num1或num2不是純數字
if [ -n "$test1" -o -n "$test2" ]
? ? ? ? then
? ? ? ? echo "wrong num"
? ? ? ? exit 11
fi
#這里是第三個判斷語句,判斷操作符是否有效
if [ "$opt"=="+" ]
? ? ? ? then
? ? ? ? echo "$num1 $opt $num2 = $(($num1 $opt $num2))"
else
? ? ? ? echo "wrong opt"
? ? ? ? exit 12
fi
2019-09-05
好吧,我知錯了 ==兩邊也要用空格