L
logout
Grünschnabel
Hi!
Ich bin zu dumm, eine if-Schleife zu bauen, hier ein exemplarischer Auszug. Es soll die Programmversion ermittelt werden und entsprechend soll eine Variable gesetzt werde:
#!/bin/bash
shellvers=$(/bin/bash --version|head -1|cut -c 19-23)
echo "testweise Ausgabe der ermittelten Version:"
echo $shellvers
if [ $shellvers="4.0" ]; then
echo okay
fi
Das mit der Bash-Version ist ein Bsp, ich weiß, dass das auch anders geht, mir geht es nur um die Schleife.
Also, auf den meisten Systemen wird $shellvers 2.0b oder 3.0 ergeben, die if-Bedingung wird trotzdem postiv erfüllt, obwohl $shellvers niemals "4.0" sein kann... warum?
Warum wird diese if-Bedingung positiv erfüllt, obwohl $shellvers niemals den Wert 4.0 hat. wo is das der Fehler?
Ich bin zu dumm, eine if-Schleife zu bauen, hier ein exemplarischer Auszug. Es soll die Programmversion ermittelt werden und entsprechend soll eine Variable gesetzt werde:
#!/bin/bash
shellvers=$(/bin/bash --version|head -1|cut -c 19-23)
echo "testweise Ausgabe der ermittelten Version:"
echo $shellvers
if [ $shellvers="4.0" ]; then
echo okay
fi
Das mit der Bash-Version ist ein Bsp, ich weiß, dass das auch anders geht, mir geht es nur um die Schleife.
Also, auf den meisten Systemen wird $shellvers 2.0b oder 3.0 ergeben, die if-Bedingung wird trotzdem postiv erfüllt, obwohl $shellvers niemals "4.0" sein kann... warum?
Warum wird diese if-Bedingung positiv erfüllt, obwohl $shellvers niemals den Wert 4.0 hat. wo is das der Fehler?