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

[solved] test "abc"="abd" liefert true

Hallo,

ich wollte ein Skript schreiben, das je nachdem ob zwei Strings gleich sind, etwas tut oder eben nicht. Nachdem das nicht so funktionierte, wie ich wollte, hab ich erstmal folgendes ausprobiert:

Code:
#!/bin/bash

echo "test-skript"

if test "t"="ta"
then
 echo "Stimmt"
else
 echo "Stimmt nicht"
fi

Nur blöd, dass dieses Skript "Stimmt" ausgibt, der Test also true ergibt obwohl es offensichtlich nicht die gleichen Strings sind.
Ich hab dann auf der Konsole ausprobiert mit den Ergebnissen:

Code:
pfefferoni@ibv-ip153:~/Documents> test "t"="t"; echo $?
0
pfefferoni@ibv-ip153:~/Documents> test "t"="tt"; echo $?
0

Also jedes Mal kommt True raus. Das gleiche bei Vergleich auf Ungleichheit. Hab auch == und kurzschreibweise ausprobiert aber alles bleibt wahr :(

Mach ich irgendeinen grundlegenden Fehler? Wenn ja, welcher? Testen auf leeren String funktioniert übrigens.

MfG[/code]
 
Code:
test "abc" = "abd";

Code:
#!/bin/sh 
 
if [ "t" = "ta" ];
  then
    echo "Stimmt";
 else
   echo "Stimmt nicht";
fi;
Siehe: man test
 
OP
P

Pfefferoni

Newbie
Danke.

Ich könnte mich grad ohrfeigen, diese kleinen Leerzeichen hab ich überhaupt nicht für voll genommen.
 

abgdf

Guru
Muß man bei anderen Sprachen ja auch nicht.
Diese Besonderheiten sind es, mit der mir die Shell das Leben manchmal echt schwer macht.

Gruß
 
Oben