2017-10-06 151 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

相關問題