Ich sehe oft Skripte mit der Verwendung vonOptionenwie bei if [ -f some_file ]
der Prüfung, ob es some_file
sich um eine Datei handelt. Ich habe ein sehr vage Verständnis vonFlaggen, aber kann mir jemand eine gute Erklärung geben? Andere wie -p
, -s
, ich habe keine Ahnung, was sie sind und konnte keine guten Ressourcen dazu finden, da eine einzelne Google-Suche kein gutes Ergebnis liefert.
Antwort1
Ob Sie es glauben oder nicht, [
es handelt sich tatsächlich um eine andere Bezeichnung für test
„Befehl“.
Sie können die man
Seite überprüfen:
man test
test
ist in den meisten Shells ebenfalls eine integrierte Shell (und hat Vorrang vor der externen Shell):
% type -a \[
[ is a shell builtin
[ is /usr/bin/[
% type -a test
test is a shell builtin
test is /usr/bin/test
In bash
können Sie auch sehen help test
.
Antwort2
Die beste Lösung ist das Handbuch für Bash, ja das einfache man bash
.
Um den genauen Eintrag im Handbuch zu finden, führen Sie diesen Befehl aus:
LESS=+/'^CONDITIONAL EXPRESSIONS' man bash
Beim Arbeiten in einer Bash-Shell ist dies auch hilfreich:
help test