【发布时间】:2012-11-27 06:21:39
【问题描述】:
我对 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
我还需要它来处理浮点数。
有人可以让我知道我该怎么做吗?
【问题讨论】:
-
我希望您不需要
12345e42形式的数字。
标签: regex bash expression bash4