
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 -h
ist keine Option für das while
Schlü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 test
und [
sowie der POSIX-Standardbeschreibt esetwa so:
-h pathname
Wahr, wenn
pathname
es sich um einen vorhandenen Verzeichniseintrag für einen symbolischen Link handelt. Falsch, wenn espathname
nicht aufgelöst werden kann oder wennpathname
es sich um einen vorhandenen Verzeichniseintrag für eine Datei handelt, die kein symbolischer Link ist. Wenn die letzte Komponentepathname
ein symbolischer Link ist, wird diesem symbolischen Link nicht gefolgt.
Kurz gesagt, es ergibtWAHRWenn der angegebene Pfadname ein symbolischer Link ist, while
wird Ihre Schleife so lange wiederholt, bis der Wert in der Variablen SOURCE
nicht mehr auf einen symbolischen Link verweist.