Verstehe Code nicht...

E

-eraz-

Tripel-As
Ich hab hier Code, der eine IP Adresse auf Gültigkeit überprüfen soll. Dabei ist mir nun aber ein Fehler aufgefallen:
Code:
           ip=$1

if [[ $ip =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then
   echo passt
else
   echo "passt nicht"
fi
Wenn man 10.24.1 übergibt wird diese als unügltig erkannt. Wenn allerdings das erste und zweite Feld dreistellig ist, und sonst nichts dazu geschrieben wird, wird die IP fälschlicherweise als gültig erkannt. z.b. bei: 192.100

:think:
 
Du hast es hier mit Regulären Ausdrücken und einigen Maskierungen zu zu tun. Also google mal nach regexp.

Dieser Ausdruck wird dann Bitweise mit dem Inhalt der Variablen ip verglichen, den du beim Aufruf des Scriptes als Parameter zuweist.
 
Code:
tg@nachtigaller:~$ ip=192.100
tg@nachtigaller:~$ if [[ $ip =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then
>    echo passt
> else
>    echo "passt nicht"
> fi
passt nicht
Sieht doch gut aus!? Mit was fuer einer shell arbeitest Du und unter welchem System?
 
Hab die Lösung schon gefunden, liegt angeblich an der neueren Bash Version. Hier muss der "Prüfcode" unter Anführungszeichen stehen, dann gehts (GNU bash, version 3.2.25(1)-release (x86_64-redhat-linux-gnu)

@tuxlover
Womit ich es zu tun habe weiß ich auch, das war nicht die Frage.
 
Schreib doch bitte den Code noch auf, damit sich der naechste, der so ein Problem hat und ueber diesen stolpert, nicht fragen muss, welcher Teil der Pruefcode ist. Danke.
 
Schreib doch bitte den Code noch auf, damit sich der naechste, der so ein Problem hat und ueber diesen stolpert, nicht fragen muss, welcher Teil der Pruefcode ist. Danke.

Bitteschön:
Code:
ip=$1
if [[ $ip =~ '^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$' ]]; then
   echo passt
else
   echo "passt nicht"
fi
 
Seit RedHat 6 muss der basagte Teil wieder ohne Hochkomma stehen! :finger:
 

Ähnliche Themen

If-Abfrage kommt nicht positiv zurück, obwohl Kriterium erfüllt

NAS-Drive Mount in Bash-Script über crontab

Verständnisfrage zu RegExps

Verschlüsseltes Backup-Script mit rsync

HandbrakeCLI Shell Skript

Zurück
Oben