
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"