Befehlsersetzungen in doppelten Anführungszeichen " sofort erweitern. Das ist nicht das, was Sie für Ihre Eingabeaufforderung wollen. Einfache Anführungszeichen ' behält die Ersetzungen in $PS1 bei die dann nur beim Anzeigen der Eingabeaufforderung erweitert werden. Daher sollte dies funktionieren:
export PS1='$(whoami)@$(hostname):$(pwd)'
Wenn Sie das übliche Dollarzeichen und ein Leerzeichen am Ende Ihrer Eingabeaufforderung wünschen, fügen Sie einfach $ hinzu am Ende (kein Escape erforderlich):export PS1='$(whoami)@$(hostname):$(pwd)$ '
sh-4.2$ export PS1="\example@unixlinux.online\h:\w>"
example@unixlinux.online:~>cd /usr/local
example@unixlinux.online:/usr/local>
Dieser Befehl funktioniert bei mir.
export PS1="\example@unixlinux.online\h: \W:$"
Wo
\u =Benutzername
\h =Hostname
\W Name des aktuellen Ordners (nicht vollständiger Pfad)