UnixTools01 12
Argumente mit Sonderzeichen
Alles war hinter dem Kommandonamen steht, durch Leerzeichen getrennt, sind die Argumente mit denen das Programm aufgerufen wird (ob die Trennung durch ein oder mehrere Leerzeichen erfolgt, ist egal). Das diese Argumente für das Programm bedeuten, was es also damit macht, hängt vom Programm ab. Rufen Sie das Programm mit --help auf, und in den meisten Fällen werden sie eine kurz und bündige Auskunft erhalten. Oft ist es so, dass Argumente, die mit einem Minuszeichen - beginnen, also z.B. -l beim Kommando ls lediglich seine Information an das Programm sind, sich auf eine bestimmte Weise zu verhalten (zum Beispiel eine lange/vollständige Ausgabe zu erzeugen, statt nur einer kurzen). Diese Art von Argumenten nennen wir auch Option. Andere Argumente sind oft Dateinamen, wie zum Beispiel datei.txt bei ls -l datei.txt. Oder es sind einfach nur Zeichenketten, wie Hello und World bei dem Kommando echo Hello World.
Leerzeichen
Enthält das Argument ein (oder mehrere) Leerzeichen, gibt es ein Problem, denn die Shell würde denken, dass es sich um mehreer Worte handelt. Um zu erkennen zu geben, dass die Zeichen zu einem einzigen Argument gehören, schließen wir sie in Anführungszeichen ein.
$ echo "Hello World" Hello World $ echo 'Hello World' Hello World
In beiden fällen erhält das Programm echo nur ein einziges Argument (weldches ein Leerzeichen enthält). Hätten wir die Anführungszeichen nicht geschrieben, hätte die Shell gedacht, dass sie das Programm echo mt zwei Argumenten aufrufen soll, nämlich mit Hello (erstes Argument) und World (zweites Argument). Was das Ergebnis angeht, würde das zwar im Fall des Programms echo keinen so großen Unzterschied machen. Aber denken wir an das Programmm touch, dass Dateien erzeugt, so würde
$ touch Hello World
zwei Dateien erzeugen, wohingegen
$ touch 'Hello World'
nur eine Datei erzeugen würde (mit einem Dateinamen, der ein Leerzeichen enthält - was in der Regel keine so gute Idee ist, aber möglich).
Q&E:
- Legen Sie eine Datei an, die 'Hello World!" heisst (mit Leerzeichen), und löschen Sie diese Datei anschliessend wieder.
- Löschen Sie im aktuellen Verzeichnis eine Datei, die '--help' heisst
- Legen Sie eine Datei an, die '2*3' heisst
- Versuchen Sie eine Datei anzulegen, die "///A///' heist.