In einem meiner Shell-Skripte sehe ich
if [[ ! -d directory1 || ! -L directory ]] ; then
Was bedeuten die Optionen -d
und -L
hier? Wo kann ich Informationen über die Optionen finden, die in einer if
-Bedingung verwendet werden können?
In einem meiner Shell-Skripte sehe ich
if [[ ! -d directory1 || ! -L directory ]] ; then
Was bedeuten die Optionen -d
und -L
hier? Wo kann ich Informationen über die Optionen finden, die in einer if
-Bedingung verwendet werden können?
Sie können Hilfe test
verwenden, um die meisten von [[
akzeptierten Optionen anzeigen zu lassen.
Sie können auch Hilfe [
machen, um zusätzliche Informationen zu erhalten. Sie können Hilfe [[
verwenden, um Informationen zu diesem Typ von Bedingungen zu erhalten.
Siehe auch man bash
im Abschnitt "BEDINGTE AUSDRÜCKE".
Der -d
überprüft, ob das angegebene Verzeichnis existiert. Der -L
Test prüft auf einen symbolischen Link.
Die Datei-Testoperatoren aus dem Advanced Bash-Scripting Guide erläutern die verschiedenen Optionen. Und hier ist die man-Seite für bash, die auch durch Eingabe von man bash
im Terminal gefunden werden kann.
bash
verfügt über eine integrierte Hilfe mit dem help
-Befehl. Sie können ganz einfach die Optionen eines bash-Befehls mit help
herausfinden:
$ help [[
...
Ausdrücke bestehen aus den gleichen Primäranweisungen, die auch vom `test'-Befehl verwendet werden
...
$ help test
test: test [expr]
Bewertet die bedingte Ausdruck.
...
[die Antwort, die Sie wollen]
Im Bourne-Shell waren [
und test
mit dem gleichen ausführbaren Programm verbunden. Daher finden Sie viele der verschiedenen verfügbaren Tests in der Test-Manpage.
Dieses:
if [[ ! -d directory1 || ! -L directory ]] ; then
besagt, wenn directory1
kein Verzeichnis ist oder wenn directory
kein Link ist.
Ich glaube, die richtige Syntax sollte sein:
if [[ ! -d $directory1 ] || [ ! -L $directory ]] ; then
oder
if [[ ! -d $directory1 -o ! -L $directory ]] ; then
Ist die Zeile in Ihrem OP korrekt?
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.