#!/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
2018-06-29
發現原因了, 是因為在進行條件判斷時,變量$a沒有加"" 號,所導致,加上之后就好了,但是沒加之前為什么+ - / 都可以正常運算???