Ich habe eine Bash-Eingabeaufforderung, die meinen Hostnamen mit der \h
Variable (interpretiert von PS1
) oder $(uname -n)
enthält. Was auch immer ich verwende, scheint keinen Unterschied zu machen.Hostname in Bash PS1 Prompt dynamisch ändern
Für Software lizenzrechtlichen Gründen muss ich manchmal meinen Hostnamen ändern, die durch den Aufruf eines Skripts getan wird, die Dateien aktualisiert /etc/hosts
und /etc/hostname
und fordert auch $ hostname NEWNAME
für eine gute Maßnahme.
Wenn das Skript meinen Hostnamen aktualisiert, möchte ich, dass die Shell, die das Skript aufgerufen hat, die PS1
Eingabeaufforderung die Änderung widerspiegelt - um den neuen Hostnamen anzuzeigen. Der einzige Weg, den ich weiß, ist, indem ich meine .bashrc
, die PS1
definiert. Aber wenn man . "${HOME}/.bashrc"
innerhalb des Skripts aufruft, wird nur die Umgebung dieses Skripts und nicht die des Anrufers geändert, wie ich es verstehe.
Also, wie kann ich die PS1
Eingabeaufforderung des Aufrufers auch aktualisiert, um den neuen Hostnamen automatisch anzuzeigen?
Sie sagen, dass '\ H-nicht dynamisch ändert, basierend auf dem Hostnamen? –
Das Ändern all dieser sollte es richtig einstellen, aber Sie könnten immer 'PS1' eine Funktion machen. – tadman
@ IgnacioVazquez-Abrams richtig, nicht, bis ich eine neue Shell (oder manuell Ressource '.bashrc') starten zeigt' \ h' den aktuellen Hostnamen (GNU Bash, Version 4.3.48 (1) -Release) – ardnew