Archiv verlassen und diese Seite im Standarddesign anzeigen : Bash ausser Kontrolle???
Tja, jetzt bin ich etwas ratlos...
Plötzlich bekomme ich in Shell-Scripten bei folgendem immer die Fehlermeldung "Command not found...".
SV1="irgend ein string"
SV2="noch ein string"
if [ "$SV1" = "$SV2" ]; then
# hier wird irgend was getan
fi
Statt also einen String-Verlgeich zu machen, wird $SV1 und $SV2 als Kommando interpretiert.
Hat jemand eine Ahnung woran das liegen könnte???
Robert
christophwth
19-06-2000, 19:01
Hi
Robert, korregier mich wenn ich falsch liege. Aber führt if [ "$SV1" = "$SV2" ]; nicht eine Zuweisung aus. Und der Vergleich müßte mit == geschrieben
werden ?
Gruss
Christoph
@Christoph: Das ist schon richtig so. bash != C
@robert: Bei mir (RH 6.2, bash 1.14.7) klappt das ohne Probleme. Welche bash setzt Du ein? Gibt which SV oder locate SV irgend etwas sinnvolles aus?
Gruß,
Backi
blackbird
19-06-2000, 21:52
hi robert!
schreib hier zwar wieder was was vermutlich nicht wirklich direkt zur lösung beiträgt, aber wer weiss..
bei mir klappts auch einwandfrei, unter suse 6.0 bash 2.02.1(1) i686
grüsse blackbird
Ich hab den Fehler gefunden...
Und wie üblich sitzt der Teufel im Detail.
Es lag gar nicht direkt an der If-Anweisung, sondern schon an den Zuweisungen an die Variablen direkt vor der If-Anweisung.
Durch einen Fehler wurden bei einer globalen Ersetzungsroutine, welche eigentlich etwas anderes ersetzen sollte, alle "=" Zeichen durch " = " ersetzt. Soll heißen, vor und nach dem "=" war ein Leerzeichen. In dem Moment wird die Zuweisung an die Variablen natürlich falsch interpretiert.
Probiert es mal selber aus, setzt bei einer Variablenzuweisung vor und nach dem "=" Zeichen ein Leerzeichen.
Dumm gelaufen... :-)
Robert
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.