Ich bin relativ neu zu Bash-Programmierung und ich erstelle derzeit einen einfachen Rechner.Bash RegEx, um Gleitkommazahlen von Benutzereingabe zu überprüfen
Es muss Gleitkommazahlen verwendet werden und prüfen, ob sie so sind.
Ich habe eine checkNumbers Funktion:
function checkNumber {
regExp=[0-9]
if [ $testNo =~ $regExp ]
then
echo "That is a number!"
let check=1
else
echo "Damn! Not A Number!"
fi
}
, wo ich den Benutzer zur Eingabe einer Nummer wie diese:
while [ $check -eq 0]
do
echo "Please enter a number
read testNo
echo ""
checkNumber
done
dies nicht funktioniert, ich diesen Fehler:
./calculator.sh: line 39: [: =~: binary operator expected
Zeile 39 ist:
if [ $testNo =~ $regExp ]
Ich habe viele Reguläre Ausdrücke versucht, wie:
^*[0-9]*$
und
^*[0-9]\.[0.9]*$
etc etc.
auch, habe ich gebunden andere Möglichkeiten der Durchführung der Überprüfung:
case $testNo
in
^*[0-9]*$) echo "That is a number!";;
*) echo "Error! Not a number!";;
esac
und
if [ $testNo = ^*[0-9]*$ ]
then
echo "etc etc"
else
echo "oops"
fi
Ich brauche auch dies mit Gleitkommazahlen zu arbeiten.
könnte jemand bitte lassen Sie mich wissen, wie ich darüber gehe?
zitiere ich Sie '12345e42' brauchen Zahlen der Form nicht hoffen. –