PS1提示bash版本3.2.25 v 4.1.2之间的差异

时间:2017-10-06 05:07:48

标签: bash ps1

我有一个首选的bash提示布局,并尝试将其应用于2个不同的系统。但是,它在两种环境中的表现都不相同。

如问题中所列,一个运行3.2.25,另一个运行4.1.2。 您可能已经猜到它在具有更高版本的bash的机器上正常工作。

我的问题是我无法看到我所介绍的两个版本都无法理解的内容。

.bashrc的相关行跟随:

# Colours
RED='\[\e[1;31m\]'
GREEN='\[\e[1;32m\]'
YELLOW='\[\e[1;33m\]'
BLUE='\[\e[1;34m\]'
CYAN='\[\e[1;36m\]'
NORM='\[\e[m\]'

# PS1 pieces
DATE='[\D{%d-%m-%Y} \t]'
LPATH='[\w]'
DB_USER='[genomst]'
DB_COL=BLUE
WHERE='[\u@\h]'

PS1="$YELLOW$DATE$GREEN$LPATH$NORM\n${!DB_COL}$DB_USER$NORM$WHERE\$ "

当我尝试搜索我以前使用过的命令时按下ctrl + r进行搜索时,会出现异常行为。

在4.1.2版本当然一切都有效,但在3.2.25版本上,返回的提示显示我的光标在中间闪烁:

重复的步骤是:

1. login as user and receive the following prompt:
[28-09-2017 17:36:20][~]
[genomst][oracle@pwdchora51]$ 
2. Press ctrl+r and search for vim
[28-09-2017 17:36:20][~]
(reverse-i-search)`vim': vim .bashrc
3. Press left arrow key (could be any but this shows just how far I have moved back)
[28-09-2017 17:36:20][~]
[genomst][oracle@pwdchora51]$ vim .bashrc
                    ^

^表示光标在我的屏幕上的位置

任何有人可以解决这个问题的亮点都会非常感激

如果需要进一步的细节,请告诉我?

1 个答案:

答案 0 :(得分:0)

如果您的目标是通用,请尝试使用tput命令:

RED="\[$( tput -Txterm setaf 1 )\]"
GREEN="\[$( tput -Txterm setaf 2 )\]"
YELLOW="\[$( tput -Txterm setaf 3 )\]"
BLUE="\[$( tput -Txterm setaf 4 )\]"
MAGENTA="\[$( tput -Txterm setaf 5 )\]"
CYAN="\[$( tput -Txterm setaf 6 )\]"
WHITE="\[$( tput -Txterm setaf 7 )\]"
BOLD="\[$( tput -Txterm bold )\]"
NORM="\[$( tput -Txterm sgr0 )\]"