• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[geloest] bash if laeuft nicht

hissshack

Newbie
Hi,
ich versuch schon die ganze Zeit die einfache If-Bedinungung zum
laufen zu bekommen die man in jedem Tutorial findet:

#!/bin/bash
T1="foo"
T2="bar"
if [ "$T1" = "$T2" ]; then
echo expression evaluated as true
else
echo expression evaluated as false
fi

ich bekomm staendig die Fehlermeldung: [foo=bar] command not found.
Ich hab n Suse 9.3
 
Ich würde es mal mit den logischen Operator ausprobieren.

Code:
#!/bin/bash 
T1="foo" 
T2="bar" 
if [ "$T1" == "$T2" ]; then 
echo expression evaluated as true 
else 
echo expression evaluated as false 
fi

Jetzte geht das ganze auch.
 
OP
H

hissshack

Newbie
danke mal fuer die Antworten, sorry dass ich erst jetzt schreibe.

Ich hab den Code so in mehreren Tutorials gefunden wie z.B.
http://www.faqs.org/docs/Linux-HOWTO/Bash-Prog-Intro-HOWTO.html#ss7.1

Die if-Bedinung springt immer nach ELSE, auch wenn die Bedingung
"true" sein sollte. Ein logischer Operator == bringt das gleiche Ergebnis.

Das Skprit heisst user.shell und wurde unter pico editiert.
Das Problem ist nur die if-Bedingung, der restliche Code funktioniert.

An der Syntax seh ich keinen Unterschied zum Tutorial, deswegen ists
auch sehr fraglich fuer mich warum ausgerechnet nur dieses Commando
nicht laeuft.
 
OP
H

hissshack

Newbie
Hallo,
ich habs inswischen zum laufen bekommen.
Und zwar lags an der Syntax ... warum .. keine Ahung .. den einzigen
Unterschied den ich feststellen konnte ware die Leerzeichen.
Die If-Bedingung muss genau so aussehen

if [ "$T1" = "$T2" ]; then

.. auf die Leerzeichen muss geachtet werden, und der logische operator ist
"=", sonst nichts :roll:
Danke an alle
 

TeXpert

Guru
bei dieser Sammlung Mist fällt mir nur wieder der Nuhr ein :(

also

hissshack schrieb:
Hallo,
ich habs inswischen zum laufen bekommen.
Und zwar lags an der Syntax ... warum .. keine Ahung .. den einzigen
Unterschied den ich feststellen konnte ware die Leerzeichen.
Die If-Bedingung muss genau so aussehen

wenn Du den Text aus Deinem 1. Post per C&P überträgst, siehst Du, dass dort die Whitespaces drin stehen, also in dem 1. Post steht die richtige Syntax, was meinst Du, warum wir sagen, dass die Syntax korrekt aussieht.

und der logische operator ist
"=", sonst nichts :roll:
Lötzinn. der logische Operator ist "==" nur in dem Fall, dass 2 Strings verglichen werden ist "=" zulässig
 
Oben