我對bash編程比較陌生,目前我正在創建一個簡單的計算器。Bash RegEx檢查用戶輸入的浮點數
它需要使用浮點數,並檢查他們是如此。
我有一個checkNumbers功能:
function checkNumber {
regExp=[0-9]
if [ $testNo =~ $regExp ]
then
echo "That is a number!"
let check=1
else
echo "Damn! Not A Number!"
fi
}
從哪裏獲得用戶輸入一些這樣的:
while [ $check -eq 0]
do
echo "Please enter a number
read testNo
echo ""
checkNumber
done
這是不行的,我得到這個錯誤:
./calculator.sh: line 39: [: =~: binary operator expected
線39是:
if [ $testNo =~ $regExp ]
我已經試過很多正則表達式,如:
^*[0-9]*$
和
^*[0-9]\.[0.9]*$
等等等等
另外,我還捆綁其他執行檢查的方式:
case $testNo
in
^*[0-9]*$) echo "That is a number!";;
*) echo "Error! Not a number!";;
esac
和
if [ $testNo = ^*[0-9]*$ ]
then
echo "etc etc"
else
echo "oops"
fi
我還需要這浮點數工作。
可能有人請讓我知道我怎麼去呢?
我希望你不需要的形式'12345e42'的數字。 –