A
Anonymous
Gast
So ein Problem löst man normalerweise mit regulären Ausdrücken und oftmals mit dem Befehl sed
ist aber bestimmt kein Anfänger-taugliches-Problem
Auf Bash-Ebene ist das schwierig zu lösen. Da die Eingabe auseinander genommen werden muss und jedes Zeichen einzeln gepüft werden muss aber nicht unmöglich.
Auch fehlt eine Definition was zB bei Eingaben "123 123 123" oder "0xAF" "0.1234" oder ähnlichen passieren soll, sind das jetzt Zahlen oder sind das keine Zahlen ??????
Mal davon ungeachtet könnte man das mit Schleifenkonstrukten auf Bash-Ebene zB so hier lösen.
robi
ist aber bestimmt kein Anfänger-taugliches-Problem
Auf Bash-Ebene ist das schwierig zu lösen. Da die Eingabe auseinander genommen werden muss und jedes Zeichen einzeln gepüft werden muss aber nicht unmöglich.
Auch fehlt eine Definition was zB bei Eingaben "123 123 123" oder "0xAF" "0.1234" oder ähnlichen passieren soll, sind das jetzt Zahlen oder sind das keine Zahlen ??????
Mal davon ungeachtet könnte man das mit Schleifenkonstrukten auf Bash-Ebene zB so hier lösen.
Code:
while true
do
read -p "Bitte Eingabe :" antwort
IS_NO_ZAHL=0
IS_ZAHL=0
if( test -z "$antwort" )
then
echo "Es wurde nichts eingegeben; beende Script "
break
else
EINGABELAENGE=${#antwort}
for ((i=0; $i<$EINGABELAENGE ; i=$(($i + 1)) ))
do
if echo "0123456789" | grep "${antwort:$i:1}" >/dev/null 2>&1
then
IS_ZAHL=1
else
IS_NO_ZAHL=1
fi
done
fi
if [ $IS_NO_ZAHL = "1" -a $IS_ZAHL = "1" ]
then
echo "ist gemischt"
else
if [ $IS_NO_ZAHL = "1" ]
then
echo "keine Ziffer dabei"
else
echo "nur Ziffern"
fi
fi
done