Was ist der `

Was ist der `

[Ich habe den Befehl unter sowohl in Cygwin als auch in Linux gesehen /bin. Immer wenn ich ihn ausführe, erhalte ich die Fehlermeldung: missing ].

Ich habe nie verstanden, was dieser Befehl macht. Ich habe ihn eines Tages entdeckt und wollte herausfinden, was er macht (und ob er nützlich ist oder nicht).

NOTIZ:Ich hätte den manEintrag auf eine Antwort überprüft, aber leider gibt es keinen Eintrag für[

Antwort1

Das isttestBefehl.

Finden Sie beispielsweise heraus, ob Folgendes /etc/passwdvorhanden ist oder nicht:

[ -f /etc/passwd ] && echo "Yes" || echo "No"

In der Regel schreibt man es so:

if test -f /etc/passwd
then
  echo "Yes"
else
  echo "No"
fi
Read 

Antwort2

Haben Sie schon einmal if-Bedingungen in Shell-Skripten gesehen/bemerkt? Sie haben folgende Form:
[ -e $FILE ]

In diesen Fällen ist die Funktion zur Bedingungsprüfung normalerweise in die Shell integriert, die diese Skripte interpretiert (normalerweise Bash oder Sh-Aliased-Bash).

Die angezeigten Binärdateien dienen demselben Zweck, sind jedoch vorhanden, damit Bedingungsprüfungen in Shells verwendet werden können.ohnesolche Funktionalität ist eingebaut.

Antwort3

Die eckige Klammer [ ist eine andere Möglichkeit, den Befehl aufzurufen test.

Beziehen aufManpage des Testsfür weitere Infos :)

verwandte Informationen