Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung Nächste Überarbeitung Beide Seiten, nächste Überarbeitung | ||
admin_grundlagen:shell_sonderzeichen [2014/06/15 12:02] carsten_strotmann |
admin_grundlagen:shell_sonderzeichen [2020/12/04 13:16] holger_jakobs [wie schütze ich mich vor Sonderzeichen (z.B. in Dateinamen)] |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ====== Die wichtigsten Shell Sonderzeichen ===== | ||
+ | |||
<file> | <file> | ||
~ - steht für den Namen des Heimatverzeichnisses | ~ - steht für den Namen des Heimatverzeichnisses | ||
- | $ - Variablen | + | $ - leitet einen Variablennamen ein |
- | * - Wildcart - Platzhalter für mehrere beliebige Zeichen | + | * - Wildcard - Platzhalter für 0 oder mehr beliebige Zeichen |
- | ? - genau ein gesuchtes Zeichen | + | ? - Wildcard - Platzhalter für genau ein beliebiges Zeichen |
- | [a-z] - steht für Platzhalter für Zeichen/Zeichenketten etc. | + | [a-z] - steht als Platzhalter für genau ein Zeichen aus der eckigen Klammer |
- | [^a-z] - steht für Platzhalter für Zeichen/Zeichenketten die nicht angegeben sind | + | [[:lower:]] - Zeichenklasse für Kleinbuchstaben, nicht von der Spracheinstellung abhängig, umfasst (bei korrekter Implentation) auch Buchstaben nicht-lateinischer Alphabete |
- | \ - entwertet das letzte Zeichen | + | [^a-z] - steht als Platzhalter für genau ein Zeichen, das nicht in der eckigen Klammer angegeben ist (alles außer ...) |
- | ' | + | \ - entwertet das darauffolgende Zeichen, beraubt es also seiner Sonderbedeutung. |
- | " | + | '...' - In Hochkommas stehende Zeichenketten werden von der Shell gar nicht interpretiert. |
- | | zwei Befehle verbinden | + | "..." - Bei in Anführungsstrichen stehenden Zeichenketten führt die Shell kein Matching auf Dateinamen durch, und die Zerlegung in Wörter findet ebenfalls nicht statt. |
+ | | zwei Befehle mittels einer Pipe verbinden | ||
< aus Datei einlesen | < aus Datei einlesen | ||
- | > in Datei schreiben | + | > in Datei schreiben (diese wird überschrieben, falls bereits vorhanden) |
>> an Datei anhängen | >> an Datei anhängen | ||
</file> | </file> | ||
+ | |||
+ | ====== Wie schütze ich Sonderzeichen (z. B. in Dateinamen)? ===== | ||
+ | * ''\'' - Ein Backslash schützt immer das folgende Zeichen vor der Interpretation durch die Shell. | ||
+ | * Alternativ kann man eine Zeichenkette auch in einfache Hochkommas einschließen: | ||
+ | 'Beispiel einer geschützten Zeichenkette' | ||
+ | |||
+ | '%%--%%' bedeutet __Ende aller Optionen__. Dies ist immer dann von Bedeutung, wenn eine Zeichenkette folgt, die als Option interpretiert werden könnte (wegen %%-%% oder %%--%% am Anfang), das jedoch nicht passieren soll. | ||
+ | touch -- -l | ||
+ | cp -a -v -- -l -a | ||
+ | rm -- -l -a |