我PS1
为 bash创建了一个很好的http://bashrcgenerator.com/,但似乎出了什么问题。终端模拟器向我显示一些随机字符,这意味着PS1
可能存在语法错误。奇怪的是,在我编辑它之后(使用 nano)它就会工作。如果我添加一个空格,删除它,保存它,然后运行 bash,它就可以正常工作。但是当我注销并再次登录时,它又出现错误并且很奇怪。这是我的 .bashrc:
#
# ~/.bashrc
#
# If not running interactively, don't do anything
[[ $- != *i* ]] && return
alias ls='ls --color=auto'
#PS1='[\u@\h \W]\$ '
PS1="\[$(tput sgr0)\]\033[38;5;15m\033[38;5;14m\u\[$(tput sgr0)\]\033[38;5;15m\033[38;5;15m \[$(tput sgr0)\]\033[38;5;15m\033[38;5;10m\w\[$(tput sgr0)\]\033[38;5;15m\033[38;5;15m \
\[$(tput sgr0)\]\033[38;5;15m\033[38;5;14m\\$\[$(tput sgr0)\]\033[38;5;15m\033[38;5;15m \[$(tput sgr0)\]"
答案1
我建议您自己手动创建提示。您所要做的就是设置一些变量,然后用于设置提示的代码就变得可读。在我的 bashrc 文件中,我有以下内容:
#Set variables for foreground colors
fgRed=$(tput setaf 1) ; fgGreen=$(tput setaf 2) ; fgBlue=$(tput setaf 4)
fgMagenta=$(tput setaf 5) ; fgYellow=$(tput setaf 3) ; fgCyan=$(tput setaf 6)
fgWhite=$(tput setaf 7) ; fgBlack=$(tput setaf 0)
#Set variables for background colors
bgRed=$(tput setab 1) ; bgGreen=$(tput setab 2) ; bgBlue=$(tput setab 4)
bgMagenta=$(tput setab 5) ; bgYellow=$(tput setab 3) ; bgCyan=$(tput setab 6)
bgWhite=$(tput setab 7) ; bgBlack=$(tput setab 0)
#Set variables for font weight and text decoration
B=$(tput bold) ; U=$(tput smul) ; C=$(tput sgr0)
#NOTE: ${C} clears the current formatting
PS1="${B}${fgCyan}\u${C}@\h(bash): ${fgGreen}\w${C} > "
我敢打赌您一眼就能看出我的提示是什么样子的。这就是重点;不需要花哨的所见即所得编辑器。
我使用的原因tput
是它应该更便携。作为一个额外的好处,使用tput
使得当您echo $PS1
在命令提示符下键入时,它会向您显示格式化/彩色版本的PS1
.
这并不能完全回答你的不起作用的原因。但如果你像这样设置提示符,你肯定能够摆脱那个讨厌的错误。