„-h“-Parameter in der „while“-Bedingung eines Shell-Skripts

„-h“-Parameter in der „while“-Bedingung eines Shell-Skripts

Ich versuche, ein bereits geschriebenes Shell-Skript zu verstehen und bin auf die folgende Zeile gestoßen.

while [ -h "$SOURCE" ];

Was ich wissen muss, ist die Bedeutung von-H

Weitere Informationen:

$SOURCE = ./mein-skript.sh

Antwort1

Dies -hist keine Option für das whileSchlüsselwort, sondern für das Dienstprogramm [(und test). Die Bedeutung der Option wird im Handbuch für oder Ihrer Shell beschrieben test( [da dies normalerweise integrierte Dienstprogramme sind), siehe man test.

Es ist einStandardOption für testund [sowie der POSIX-Standardbeschreibt esetwa so:

-h pathname

Wahr, wenn pathnamees sich um einen vorhandenen Verzeichniseintrag für einen symbolischen Link handelt. Falsch, wenn es pathnamenicht aufgelöst werden kann oder wenn pathnamees sich um einen vorhandenen Verzeichniseintrag für eine Datei handelt, die kein symbolischer Link ist. Wenn die letzte Komponente pathnameein symbolischer Link ist, wird diesem symbolischen Link nicht gefolgt.

Kurz gesagt, es ergibtWAHRWenn der angegebene Pfadname ein symbolischer Link ist, whilewird Ihre Schleife so lange wiederholt, bis der Wert in der Variablen SOURCEnicht mehr auf einen symbolischen Link verweist.

verwandte Informationen