J'ai une invite bash qui inclut mon nom d'hôte en utilisant la variable \h
(interprétée par PS1
) ou $(uname -n)
. Celui que j'utilise ne semble pas faire la différence.Modifier dynamiquement le nom d'hôte dans l'invite Bash PS1
Pour des raisons de licences logicielles, je dois parfois changer mon nom d'hôte, qui se fait en appelant un script qui met à jour les fichiers /etc/hosts
et /etc/hostname
, et demande également $ hostname NEWNAME
pour faire bonne mesure. Lorsque le script met à jour mon nom d'hôte, je voudrais que le shell appelant le script affiche son invite PS1
refléter le changement - pour afficher le nouveau nom d'hôte. La seule façon que je sais de faire ceci est en ressourçant mon .bashrc
qui définit PS1
. Mais appeler . "${HOME}/.bashrc"
dans le script va seulement modifier l'environnement de ce script et pas celui de l'appelant, si je comprends bien.
Alors, comment puis-je obtenir l'invite PS1
de l'appelant pour afficher le nouveau nom d'hôte automatiquement?
Voulez-vous dire que '\ h' ne change pas dynamiquement en fonction du nom d'hôte? –
La modification de tous ceux-ci devrait le régler correctement, mais vous pouvez toujours faire une fonction 'PS1'. – tadman
@ IgnacioVazquez-Abrams correct, pas jusqu'à ce que je lance un nouveau shell (ou manuellement la ressource '.bashrc') ne \ h' montre le nom d'hôte actuel (GNU bash, version 4.3.48 (1) -release) – ardnew