Jestem stosunkowo nowy w programowaniu bash i obecnie tworzę prosty kalkulator.Bash RegEx, aby sprawdzić liczby zmiennoprzecinkowe od użytkownika input
Należy użyć liczb zmiennoprzecinkowych i sprawdzić, czy tak się dzieje.
Mam funkcji 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
}
gdzie ja dostać użytkownikowi wprowadzenie numeru tak:
while [ $check -eq 0]
do
echo "Please enter a number
read testNo
echo ""
checkNumber
done
ten nie działa, otrzymuję ten błąd:
./calculator.sh: line 39: [: =~: binary operator expected
linia 39 to:
if [ $testNo =~ $regExp ]
próbowałem wiele wyrażeń regularnych takich jak:
^*[0-9]*$
i
^*[0-9]\.[0.9]*$
itp itd
również, mam przywiązane innych sposobów wykonywania czek:
case $testNo
in
^*[0-9]*$) echo "That is a number!";;
*) echo "Error! Not a number!";;
esac
i
if [ $testNo = ^*[0-9]*$ ]
then
echo "etc etc"
else
echo "oops"
fi
Potrzebuję tego również do pracy z liczbami zmiennoprzecinkowymi.
Czy ktoś mógłby mi powiedzieć, jak to rozumiem?
Mam nadzieję, że nie trzeba liczb postaci '12345e42'. –