muss der PS1-String bei jeder Eingabe neu ausgewertet werden

muss der PS1-String bei jeder Eingabe neu ausgewertet werden

Wie kann erreicht werden, dass die PS1-Zeichenfolge jedes Mal neu ausgewertet wird, wenn der Benutzer an der Shell-Eingabeaufforderung die Eingabetaste drückt?

aktuell in meinem:

n=A; PS1="$n"


n=B

Die Eingabeaufforderung zeigt ständig A an. Wie kann ich das Problem lösen?

Antwort1

Ihre Variable $PS1 verwendet $n einmal, weil $n ausgewertet und durch seinen Wert ersetzt wird, wenn $PS1 anfänglich festgelegt wird. Das liegt daran, dass Sie doppelte Anführungszeichen verwenden. In Bash werden die Variablen in der in doppelte Anführungszeichen gesetzten Zeichenfolge in einer Zuweisung ausgewertet.

Wenn Ihr $PS1 den aktuellen Wert von $n widerspiegeln soll, müssen Sie entweder einfache Anführungszeichen um das $n setzen oder das Dollarzeichen maskieren.

Zum Beispiel:

PS1='$n'

Oder

PS1="\$n"

verwandte Informationen