2016-09-18 7 views

Antwort

3

Es ist ein Glob-Match.

case '-*' wird ausgeführt, wenn der geschaltete Parameter mit beginnt „-“.

Und weil nur der erste übereinstimmende Fall verwendet wird, ist case '*' als letzter Fall wie "default:". Wenn Sie es früher hatten, würde es alle Fälle danach verschlucken.

Auch die Anführungszeichen hier sind notwendig, weil sonst Fische diesen glob erweitern würden, was bedeuten würde, case -* würde alle übereinstimmenden Dateinamen im aktuellen Verzeichnis als Parameter haben, so wäre es wahr, wenn der geschaltete Parameter der Name einer Datei in ist das aktuelle Verzeichnis, das mit "-" beginnt.

2

Mit Hilfe von @faho's answer, ich verstehe den Zweck -*.

-* ist Glob-Muster. Es unterscheidet sich nicht von Mustern wie *.pdf oder Report_2016_*.

Autor hinzugefügt, um diese Überprüfung alle Verzeichnisse zu ignorieren, die mit - starten. Es wird ein Verzeichnis erstellt, das mit beginnt, aber CWD nicht darauf festlegen.

Der Grund, hat - besondere Verwendung in Schalen.

Zum Beispiel cd - nicht Verzeichnis in ein - genannten Verzeichnis ändern. Stattdessen wechselt er in den letzten Verzeichnis, das Sie in waren.

Verzeichnisse oder Dateien, deren Anfang mit - sind eine Quelle von Schwierigkeiten. Die folgenden Fragen auf SO Schwesterseiten geben eine Idee.

  1. How do you enter a directory that's name is only a minus?

  2. How do I delete a file whose name begins with “-” (hyphen a.k.a. dash or minus)?

  3. How to cd into a directory with this name “-2” (starting with the hyphen)?

Kein Wunder Autor entschieden Verzeichnis zu ignorieren, die mit - starten.

Verwandte Themen