Frage

Suchen Sie in der gnuwin32 / ist, gibt es eine seltsam aussehende Programmdatei mit dem Namen [.exe

Ich kann es nicht in der Dokumentation, gnuwin32.sourceforge.net oder in einer Google-Suche, so dass ich es lief und bekam:

$ [
[: missing `]'
$

also gab ich es] als Parameter und bekam

$ [ ]

$

Es ist nicht beschweren, so dass ich davon ausgegangen, es auf dem richtigen Weg war. Ich habe versucht:

$ [ hello ]

erneut, keine Beschwerden. so habe ich versucht, einen arithmetischen Ausdruck:

$ [ 1 + 1 ]
[: +: binary operator expected
$

Ich habe versucht, eine Reihe von verschiedenen Kombinationen, einschließlich Präfix und Postfix-Notation, aber nichts schien zu funktionieren. Was bedeutet das, was tun?

War es hilfreich?

Lösung

Es wird verwendet, um zu bewerten bedingte Ausdrücke.
Es ist äquivalent zu (möglicherweise ein Symlink?) Der test ausführbar.
Die manpage ist hier .

Sie können dies in vielen Bash-Skripte finden Sie unter:

if [ "$LOGNAME" = "scott" ]
then
    echo "Logged in as Scott"
else
     echo "incorrect user"
fi

Das Komische ist, die [ ist nicht Teil der bash Sprache, es ist eigentlich eine ausführbare Datei, deren Return-Code wird durch den ‚IF‘ verwendet. Dies ist der Grund, warum der Raum nach dem [ und das erste Argument ist zwingend erforderlich -. Wenn es weggelassen werden würde, würde das Skript ["$LOGNAME" auszuführen versuchen und scheitern

Sie können nicht arithmetische Operationen mit ihm tun - verwenden expr für die (siehe hier ). Sie können jedoch für eine breite Palette von Dateieigenschaften testen (existiert es? Welche Art ist es? Etc) sowie die Nutzung Vergleichsoperatoren auf Strings und Zahlen.

Andere Tipps

test a

==

[ a ]

Es ist nur Zucker

Edit: Um zu klären, das ist die bedingte Syntax, z.B. [ "A" = "a"]

Eine andere Antwort bereits erwähnt es das gleiche wie test ist. Auf bash, es ist auch eine eingebaute, so dass Sie die Hilfe für sie mit dem help builtin (help test) erhalten können.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top