搞砸了 bash 提示,可能是由于 bashrc 的变化
Messed up bash prompt, probably due to changes in bashrc
我想更改我的 bash 提示符(像任何书呆子一样)并为其保留自定义名称。
我已经想出了可以运行的代码,但是它有一些问题。密码是
if [ "`id -u`" -eq 0 ]; then
PS1="[ \[\e[1;33m\]| Dragon Master | \[\e[1;36m\]\[\e[49m\] \W \[\e[0m\]]\e[0;37m ";
else
PS1="\[\e[1;36m\][ \[\e[1;33m\]| Dragon Master | \W $\[\e[1;36m\]]\e[0;37m ";
fi
它工作正常(不完全),
但这有一个问题,当命令大于一行时,它不会转到下一行,而是开始覆盖同一行。像这样,
供参考,上图中的命令为
x86_64-softmmu/qemu-system-x86_64 -m 1024 -enable-kvm -drive if=virtio,file=test.qcow2,cache=none -cdrom Fedora-Live-Desktop-x86_64-20-1.iso
现在,这个奇怪的换行不会以任何方式影响命令。它完美运行。
建议的家伙?
在评论中发布的 link 中找到了答案。
在 PS1
引用中,每个颜色集前面必须有一个 \[
。
所以,我的代码变成了,
if [ "`id -u`" -eq 0 ]; then
PS1="[ \[\e[1;33m\]| Dragon Master | \[\e[1;36m\]\[\e[49m\] \W \[\e[0m\]]\[\e[0;37m\] ";
else
PS1="\[\e[1;36m\][ \[\e[1;33m\]| Dragon Master | \W $\[\e[1;36m\]]\[\e[0;37m\] ";
fi
摘自 this 回答。
我想更改我的 bash 提示符(像任何书呆子一样)并为其保留自定义名称。
我已经想出了可以运行的代码,但是它有一些问题。密码是
if [ "`id -u`" -eq 0 ]; then
PS1="[ \[\e[1;33m\]| Dragon Master | \[\e[1;36m\]\[\e[49m\] \W \[\e[0m\]]\e[0;37m ";
else
PS1="\[\e[1;36m\][ \[\e[1;33m\]| Dragon Master | \W $\[\e[1;36m\]]\e[0;37m ";
fi
它工作正常(不完全),
但这有一个问题,当命令大于一行时,它不会转到下一行,而是开始覆盖同一行。像这样,
供参考,上图中的命令为
x86_64-softmmu/qemu-system-x86_64 -m 1024 -enable-kvm -drive if=virtio,file=test.qcow2,cache=none -cdrom Fedora-Live-Desktop-x86_64-20-1.iso
现在,这个奇怪的换行不会以任何方式影响命令。它完美运行。
建议的家伙?
在评论中发布的 link 中找到了答案。
在 PS1
引用中,每个颜色集前面必须有一个 \[
。
所以,我的代码变成了,
if [ "`id -u`" -eq 0 ]; then
PS1="[ \[\e[1;33m\]| Dragon Master | \[\e[1;36m\]\[\e[49m\] \W \[\e[0m\]]\[\e[0;37m\] ";
else
PS1="\[\e[1;36m\][ \[\e[1;33m\]| Dragon Master | \W $\[\e[1;36m\]]\[\e[0;37m\] ";
fi
摘自 this 回答。