Seltsames Shell-Problem mit "]"

Hinweis: In dem Thema Seltsames Shell-Problem mit "]" gibt es 6 Antworten. Der letzte Beitrag () befindet sich ganz unten auf dieser Seite.
  • Moin zusammen,


    ich hab ein sehr seltsames Problem. Meine Shell scheint keine geschlossenen eckigen Klammern zu erkennen.
    Wenn ich ein Skript wie dieses ausführe


    n=1
    while [ $n -le 6 ]; do
    echo $n
    let n++
    done


    gibt mir die Shell diese Meldung : bashtest.sh: Zeile 5: [: Fehlende `]'


    Die Klammer ist aber da, wie ihr seht. Woran kann das liegen? Und vorallem : Was kann ich tun, damit die Klammer erkannt wird?
    In KWrite wird die Klammer auch nicht blau eingefärbt, wie die Eröffnungsklammer


    Gruß
    Tharian

    Für den Inhalt des Beitrages 22175 haftet ausdrücklich der jeweilige Autor: Tharian

  • Tipp mal zum Spaß

    Code
    locale

    ins Terminal ein und kopier das mal zur Betrachtung hier in den Thread

    Für den Inhalt des Beitrages 22177 haftet ausdrücklich der jeweilige Autor: robbie

  • Dabei kommt das hier raus :




    LANG=de_DE.UTF-8
    LC_CTYPE="de_DE.UTF-8"
    LC_NUMERIC="de_DE.UTF-8"
    LC_TIME="de_DE.UTF-8"
    LC_COLLATE="de_DE.UTF-8"
    LC_MONETARY="de_DE.UTF-8"
    LC_MESSAGES="de_DE.UTF-8"
    LC_PAPER="de_DE.UTF-8"
    LC_NAME="de_DE.UTF-8"
    LC_ADDRESS="de_DE.UTF-8"
    LC_TELEPHONE="de_DE.UTF-8"
    LC_MEASUREMENT="de_DE.UTF-8"
    LC_IDENTIFICATION="de_DE.UTF-8"
    LC_ALL=


    Das Problem tritt übrigens auch auf, wenn ich die Klammer aus dem Beispiel im Inet rauskopiere.

    Für den Inhalt des Beitrages 22181 haftet ausdrücklich der jeweilige Autor: Tharian

  • Hast du eventuell im Script die Leerzeichen zwischen den Klammern und der Anweisung vergessen? Das ist mir nämlich mal passiert und da wurde die gleiche Fehlermeldung ausgegeben.
    Also solltest du vielleicht noch mal überprüfen, ob du

    Code
    while [ $n -le 6 ]


    und nicht

    Code
    while [$n -le 6]


    benutzt hast.
    oder nimm das Semikolon weg. Bei mir funktionieren die Scripte, wenn sich kein Semikolon hinter dem Schleifenkopf befindet.

    Bitte nicht das </iframe> beachten, da macht Opera irgendwie Mist.
    Yeah, ich krieg eine openSuSE-Laptopfolie :thumbup:</iframe>

    Für den Inhalt des Beitrages 22203 haftet ausdrücklich der jeweilige Autor: Schmitzi

  • Nope, das passt schon... seltsamerweise klappt es wieder, seit dem ich das letze mal Updates geladen habe.
    Seltsam, aber gut ;)

    Für den Inhalt des Beitrages 22301 haftet ausdrücklich der jeweilige Autor: Tharian

  • Hallo ... wenn ich mich korrekt erinnere ist [ und ] ein Link auf das Kommando "test" ... vielleicht fehlte da was was dann durch den Update wieder verlinkt wurde ...

    Für den Inhalt des Beitrages 27356 haftet ausdrücklich der jeweilige Autor: Maria

  • Zitat von Maria

    Hallo ... wenn ich mich korrekt erinnere ist [ und ] ein Link auf das Kommando "test" ...


    Genau.
    Zwischen Klammer und Befehl muss immer ein Leerzeichen sein!

    Zitat

    [Befehl]


    Funktioniert nicht.


    Zitat

    [ Befehl ]


    Funktioniert.

    Für den Inhalt des Beitrages 27362 haftet ausdrücklich der jeweilige Autor: D_Dau