我有:
lohacker@john:~$
我有一个功能:
test1 () {
sudo hostname philip
echo something
}
如果我尝试:
lohacker@john:~$ test1
something
lohacker@john:~$ hostname
philip
lohacker@john:~$
如您所见,显示的主机名没有改变(它始终保持为 john)。
我还有另一个功能:
test2 () {
sudo hostname philip
exec bash
echo something
}
如果我尝试:
lohacker@john:~$ test2
lohacker@philip:~$
如您所见,主机名已改变但直到最后才继续执行该函数(它没有打印something
在屏幕上)。
有没有办法不运行命令就可以更改显示的主机名exec bash
?
lohacker@john:~$ echo "$PS1"
\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$
该行末尾的美元符号后面有一个空格。
source ~/.bashrc
或命令. ~/.bashrc
不会刷新 shell 中显示的主机名。
答案1
好的,我已经解决了!
export PS1="${PS1//\\h/\$(hostname -s)}"