bash PS1设置

寻求

我正在尝试按以下方式配置PS1。

绿色=“ \ [\ e [32; 1m \]”
红色=“ \ e [0; 31m”
紫色=“ \ e [0; 35m” 
STARTCOLOR =“ \ [\ e [40m \]” 
ENDCOLOR =“ \ [\ e [0m \]“
导出PS1 =” $ STARTCOLOR $ Green \ u @ $ Purple \ h $ Red \ w $ Green> $ ENDCOLOR“

我有一些问题。

  • “ [\ e [32; 1m]”和\ e [32; 1m“有什么区别?
  • 运行'export PS1'命令后,它运行良好,但是当我输入大约20个字符时,这些字符将在我附加时被覆盖。这怎么了
  • STARTCOLOR(\ e [40m)/ ENDCOLOR(\ e [0m))是什么意思?

http://a.imageshack.us/img8/606/resultqm.jpg

添加

经过一些测试,我得到了以下更改可以解决此问题。也就是说,“ \ e”格式应替换为“ \ [\ e”格式。

Red =“ \\ e [1; 31m”-不起作用
Red =“ \ [\ e [1; 31m \]”-起作用
亚历山大·波格里布尼亚克(Alexander Pogrebnyak)

我有一个设置提示的助手功能,并且由于我不想花更多的时间查找转义代码引用,因此已将所有文本颜色值编码到其中。

function set_prompt ( )
{
    # Prompt setup
    # ##################

    # Black            \e[0;30m
    # Blue             \e[0;34m
    # Green            \e[0;32m
    # Cyan             \e[0;36m
    # Red              \e[0;31m
    # Purple           \e[0;35m
    # Brown            \e[0;33m
    # Gray             \e[0;37m
    # Dark Gray        \e[1;30m
    # Light Blue       \e[1;34m
    # Light Green      \e[1;32m
    # Light Cyan       \e[1;36m
    # Light Red        \e[1;31m
    # Light Purple     \e[1;35m
    # Yellow           \e[1;33m
    # White            \e[1;37m

    local COLOR_DEFAULT='\[\e[0m\]'
    local COLOR_BLACK='\[\e[0;30m\]'
    local COLOR_BLUE='\[\e[0;34m\]'
    local COLOR_GREEN='\[\e[0;32m\]'
    local COLOR_CYAN='\[\e[0;36m\]'
    local COLOR_RED='\[\e[0;31m\]'
    local COLOR_PURPLE='\[\e[0;35m\]'
    local COLOR_BROWN='\[\e[0;33m\]'
    local COLOR_GRAY='\[\e[0;37m\]'
    local COLOR_DARK_GRAY='\[\e[1;30m\]'
    local COLOR_L_BLUE='\[\e[1;34m\]'
    local COLOR_L_GREEN='\[\e[1;32m\]'
    local COLOR_L_CYAN='\[\e[1;36m\]'
    local COLOR_L_RED='\[\e[1;31m\]'
    local COLOR_L_PURPLE='\[\e[1;35m\]'
    local COLOR_YELLOW='\[\e[1;33m\]'
    local COLOR_WHITE='\[\e[1;37m\]'

    local PS1_SET_TITLE='\[\e]0;\w\a\]'

    local PS1_SET_TIME="${COLOR_DEFAULT}\t"
    local PS1_SET_RET_CODE="${COLOR_L_RED}(\$?)"
    local PS1_SET_USER="${COLOR_L_GREEN}\u@\h"
    local PS1_SET_PWD="${COLOR_YELLOW}\w"

    local PS1_LN_1="${PS1_SET_TITLE}\n"
    local PS1_LN_2="${PS1_SET_TIME} ${PS1_SET_RET_CODE} "
    local PS1_LN_2="${PS1_LN_2}${PS1_SET_USER} ${PS1_SET_PWD} ${COLOR_DEFAULT}\n"

    echo "${PS1_LN_1}${PS1_LN_2}"
}

然后,您可以执行以下操作:

PS1=$( set_prompt )

# Use '#' for root shell
export PS1=${PS1}'$ '

unset -f set_prompt

这是解释VT100终端代码的链接:http : //www.termsys.demon.co.uk/vtansi.htm

\[-非打印字符的开始顺序-非打印字符的
\]结束顺序

  • “ [\ e [32; 1m]”和\ e [32; 1m“有什么区别?

不一样,应该是\[\e[32;1m\]'. Without[]`,它将尝试在控制台中打印序列。

  • STARTCOLOR(\ e [40m)/ ENDCOLOR(\ e [0m))是什么意思?

STARTCOLOR,表示将背景设置为黑色,ENDCOLOR表示重置所有文本属性,表示“为我提供默认控制台颜色”

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章