2011-01-18 41 views
1

自定義PS1提示我有兩個主機之間用NFS用戶ID的工作:一個正在運行的KSH 93和B運行的pdksh 88在.kshrc不工作

我的問題與我創建的自定義提示做答:它就像一個魅力和顯示顏色:

PS1="$'\E[46;31m'`logname`@$'\E[1;33m'`hostname -s`:$'\E[0m>" 

但我切換到B,這一切去地獄(私人信息刪除)。提示未能顯示顏色,如主機A;相反,顏色代碼顯示爲「清晰」。

$'\E[46;31m'[email protected]$'\E[1;33m'host_name_for_B:$'\E[0m> 

主機B上的提示不顯示顏色,如主機A,所以我想B顯示一個基本的提示,而不是。爲了解決這個問題,我編輯.kshrc文件,以在最後添加以下代碼:

export NODE=`uname -n` 

case $NODE in 
    host_name_for_B) 
     PS1="[`logname`@`uname -n`]>" 
     ;; 
    *) 
     PS1="$'\E[46;31m'`logname`@$'\E[1;33m'`hostname -s`:$'\E[0m>" 
     ;; 
esac 

case語句不工作:PS1不切換到

PS1="[`logname`@`uname -n`]>" 

主機B.

任何想法可能是什麼問題?

+0

無處在你的問題你說的是這種情況發生。行爲與你的期望有什麼不同?你得到什麼錯誤信息? – 2011-01-19 01:40:13

+0

您是否嘗試過爲PS1設置簡單值,如「A」,「B」只是爲了檢查主機設置是否設置正確?一個接一個地構建事物,看看它什麼時候中斷,你可能會弄清楚爲什麼...... – 2011-01-19 09:10:32

回答

3

多虧了朋友,這個代碼我在兩個主機A和B提示工作:

PS1="$(printf "\033[46;31m%[email protected]\033[1;33m%s\033[0m>" $(logname) $(hostname -s))" 

感謝所有抽出寶貴時間。

0

這裏是另外一個它同時適用於pdksh程序和ksh93的:

PS1='<[email protected]$HOSTNAME:/${PWD#/}>'