2017-10-06 132 views
0

我有一个首选的bash提示布局,并试图将它应用于2个不同的系统工作。但是,在两种环境下它都不会执行相同的操作。PS1提示bash版本之间的差异3.2.25 v 4.1.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='[\[email protected]\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][[email protected]]$ 
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][[email protected]]$ vim .bashrc 
        ^

^表示游标所在我的屏幕上

有人能在这个问题上流下将感激任何光线

请让我知道我f需要进一步的细节?

+0

让它'PS1 =“$ YELLOW $ DATE $ GREEN $ LPATH $ NORM \ n $ $ DB_USER $ NORM $ WHERE \ $ $ NORM“'(注意'$ NORM'在最后将转义序列重置为正常。)我发现使用转义序列本身比较容易,例如'export PS1 ='\ [\ e [0; 37m \] \ D {%R} \ [\ e [1; 34m \] \ h:\ w> \ [\ e [0m \]“' –

+0

@DavidC .Rankin - 即使使用直接转义序列,结果也是一样的 - PS1 ='\ [\ e [1; 33m \] [\ D {%d-%m-%Y} \ t] \ [\ e [1; 32m \] [\ w] \ n \ [\ e [1; 34m \] nonex \ [\ e [m \] [\ u @ \ h] \ $'---请参阅下面的注释,问题 – grail

+0

您是否尝试删除所有颜色代码并检查行为?就像:'PS1 =“$ DATE $ LPATH \ n $ {!DB_COL} $ DB_USER $ WHERE \ $”' –

回答

0

如果你的目标是成为通用的,请尝试使用tput命令:{!DB_COL}

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)\]" 
+0

以为你在处理某些事情,直到我搜索了一个长长的命令行,并且正在搜索的字符距离该行很远。例如:rsync -av root @ pwdchora16:/ u01/oradata/archive/genprd/archive_1_732457891_25248 [89] */u01/oradata/archive/genomst/---从这个命令中搜索左方括号并按左箭头键来选择我的光标在'e'字符串'archive_1_732457891'结尾处闪烁,这不是我搜索的任何地方。此外,该行的结尾现在在'o'结尾 – grail

相关问题