Parameter in der Bash-Variable $PS1

Parameter in der Bash-Variable $PS1

bash PS1Zwischen den verschiedenen Parametern, die in der Variable enthalten sein können , \werweitert

das aktuelle Arbeitsverzeichnis, wobei $HOME mit einer Tilde abgekürzt wird (verwendet den Wert der Variable PROMPT_DIRTRIM)

wie in derBash-Handbuch.

Mein $HOMEist auf /home/myuser/(denselben Wert wie in /etc/passwd) eingestellt, aber die Erweiterung von \win PS1ergibt /home/myuser, wenn ich mich im $HOMEVerzeichnis 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 \wder 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/passwdund 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.

verwandte Informationen