我对 bash 编程比较陌生,目前正在创建一个简单的计算器。
它需要使用浮点数并检查它们是否如此。
我有一个 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: 第 39 行: [: =~: 期望二元运算符
第 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
我还需要它来处理浮点数。
有人可以让我知道我该怎么做吗?