Bash/Tildeexpansion: Unterschied zwischen den Versionen

Aus Foxwiki
Keine Bearbeitungszusammenfassung
Zeile 2: Zeile 2:


== Beschreibung ==
== Beschreibung ==
Beginnt der Wert mit einer unmaskierten Tilde (~), wird versucht, diese zu substituieren.  
Beginnt ein Wert mit einer unmaskierten Tilde (~) versucht die [[bash]] diese zu substituieren.  
* Betrachtet werden alle der Tilde folgenden Zeichen bis zum ersten Schrägstrich (Slash).  
* Betrachtet werden alle der Tilde folgenden Zeichen bis zum ersten Schrägstrich (Slash).  
* Ergibt dies eine gültige Benutzerkennung, so expandiert der Ausdruck zum Heimatverzeichnis dieses Benutzers.  
* Ergibt dies eine gültige Benutzerkennung, so expandiert der Ausdruck zum Heimatverzeichnis dieses Benutzers.  

Version vom 30. Juli 2022, 11:46 Uhr

topic kurze Beschreibung

Beschreibung

Beginnt ein Wert mit einer unmaskierten Tilde (~) versucht die bash diese zu substituieren.

  • Betrachtet werden alle der Tilde folgenden Zeichen bis zum ersten Schrägstrich (Slash).
  • Ergibt dies eine gültige Benutzerkennung, so expandiert der Ausdruck zum Heimatverzeichnis dieses Benutzers.
  • Folgt der Tilde unmittelbar der Schrägstrich, wird der Ausdruck durch den Inhalt der Variablen HOME ersetzt
  • ist diese nicht gesetzt, wird das Heimatverzeichnis des aktuellen Benutzers angenommen
Beispiel
$ var=~
$ echo $var
$ /home/user
$ var=~root/
$ echo $var
$ /root/
  • Alle Zeichen bis zum ersten nicht in Anführungszeichen gesetzten Schrägstrich (oder alle Zeichen, wenn es keinen nicht in Anführungszeichen gesetzten Schrägstrich gibt) werden als Tilde-Präfix betrachtet.
  • Wenn keines der Zeichen im Tilde-Präfix in Anführungszeichen steht, werden die Zeichen im Tilde-Präfix, die auf die Tilde folgen, als möglicher Anmeldename behandelt.
  • Ist dieser Anmeldename eine Nullzeichenkette, wird die Tilde durch den Wert der Shell-Variablen HOME ersetzt.
  • Wenn HOME nicht gesetzt ist, wird stattdessen das Heimatverzeichnis des Benutzers, der die Shell ausführt, verwendet.
  • Andernfalls wird das Tilde-Präfix durch das Home-Verzeichnis ersetzt, das dem angegebenen Login-Namen zugeordnet ist.
Präfixe
  • Wenn das Tilde-Präfix "~+" ist, ersetzt der Wert der Shell-Variablen PWD das Tilde-Präfix.
  • Ist das Tilde-Präfix "~-", wird der Wert der Shell-Variablen OLDPWD, sofern sie gesetzt ist, ersetzt.

Wenn die Zeichen nach der Tilde im Tilde-Präfix aus einer Zahl N bestehen, der wahlweise ein "+" oder ein "-" vorangestellt ist, wird das Tilde-Präfix durch das entsprechende Element aus dem Verzeichnisstapel ersetzt, wie es von dem mit den Zeichen nach der Tilde im Tilde-Präfix als Argument aufgerufenen dirs built-in angezeigt würde.

  • Wenn der Tilde-Präfix ohne Tilde aus einer Zahl ohne führendes "+" oder "-" besteht, wird "+" angenommen.

Wenn der Anmeldename ungültig ist oder die Tilde-Expansion fehlschlägt, wird das Wort unverändert gelassen.

  • Jede Variablenzuweisung wird auf nicht in Anführungszeichen gesetzte Tilde-Präfixe unmittelbar nach einem ":" oder "=" geprüft.
  • In diesen Fällen wird ebenfalls eine Tilde-Expansion durchgeführt.

Folglich kann man Dateinamen mit Tilden in Zuweisungen an PATH, MAILPATH und CDPATH verwenden, und die Shell weist den erweiterten Wert zu.

Anwendungen

$ export PATH="$PATH:~/testdir"

~/testdir wird zu $HOME/testdir erweitert.

Wenn $HOME /home/user ist, wird das Verzeichnis /home/user/testdir der PATH-Variable hinzugefügt.

Syntax

Optionen

Parameter

Umgebungsvariablen

Exit-Status

Konfiguration

Dateien

Sicherheit

Dokumentation

RFC

Man-Pages

Info-Pages

Siehe auch

Links

Projekt-Homepage

Weblinks

Einzelnachweise

Testfragen

Testfrage 1

Antwort1

Testfrage 2

Antwort2

Testfrage 3

Antwort3

Testfrage 4

Antwort4

Testfrage 5

Antwort5