![Parameter in der Bash-Variable $PS1](https://rvso.com/image/111989/Parameter%20in%20der%20Bash-Variable%20%24PS1.png)
bash
PS1
Zwischen den verschiedenen Parametern, die in der Variable enthalten sein können , \w
erweitert
das aktuelle Arbeitsverzeichnis, wobei $HOME mit einer Tilde abgekürzt wird (verwendet den Wert der Variable PROMPT_DIRTRIM)
wie in derBash-Handbuch.
Mein $HOME
ist auf /home/myuser/
(denselben Wert wie in /etc/passwd
) eingestellt, aber die Erweiterung von \w
in PS1
ergibt /home/myuser
, wenn ich mich im $HOME
Verzeichnis befinde. Es wird also nicht «mit einer Tilde abgekürzt».
Ich verwende Ubuntu 16.04 mit GNU bash, version 4.3.48(1)-release (x86_64-pc-linux-gnu)
.
Was ist falsch? Was ist die Quelle, aus der \w
der Pfad des aktuellen Verzeichnisses tatsächlich kopiert wird?
Antwort1
Das Nachstellen /
ist /home/myuser/
verwirrend, Bash. Ich denke, Sie werden ein normales Verhalten sehen, wenn Sie es entfernen.
Dieser Schrägstrich ist nicht Teil des Verzeichnisnamens, sondern ein Pfadtrennzeichen. Er sollte nicht in vorkommen /etc/passwd
und auch nicht in $HOME
.
Sie können diese Theorie testen, ohne eine Datei zu berühren, indem Sie einfach Folgendes verwenden:
HOME=/home/myuser
Danach sollte die Tilde in Ihrer Eingabeaufforderung erscheinen.