PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Laenge einer Variablen



Rapt0r
27.06.08, 21:10
x=4
if [ ${#x}=2 ]
then echo laenge von x=2
else echo laenge von x!=2
fi Warum bekomme ich "laenge von x=2". Warum wertet der test zu true aus, obwohl die Laenge von x eins ist?

stefan-tiger
27.06.08, 21:23
Was für ne Länge soll das sein? Anzhal Ziffern? Anzahl Bits der Zahl? Bits/Bytes des Datentyps?

Rapt0r
27.06.08, 22:03
Ja, sowas habe ich mir schon gedacht.
Es soll die Laenge der als String interpretierten Ziffernfolge von x sein.
Aber afaik liefert ${#var} doch genau die Laenge von var als String, oder?

Ginsengelf
27.06.08, 22:16
Moin, benutze in deinem if ein ==, kein einfaches = (Zuweisung), dann geht's.

Ginsengelf

buzz768
28.06.08, 09:35
== überprüft die Gleichheit von Strings, das ergibt hier dann nur zufällig das richtige Ergebnis. Für arithmetische Vergleiche gibt es -eq, -ne, -lt, -le, -gt, -ge. Leerzeichen vor und nach dem Operator nicht vergessen. Siehe man test.

Ginsengelf
28.06.08, 10:25
Ah, ja, in der Tat.

Ginsengelf