开发者

Custom PS1 prompt in .kshrc not working

I have to work with a NFS user id between two hosts: A running Ksh 93 and开发者_如何学JAVA B running pdksh 88.

My problem has to do with the custom prompt I created on A: it works like a charm and display colors:

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

But I switch over to B, it all goes to hell (private info removed). The prompt fails to display colors like host A ; instead, the color codes are displayed "in clear".

$'\E[46;31m'NFS_user_name@$'\E[1;33m'host_name_for_B:$'\E[0m>

The prompt on host B is not displaying colors like host A so I want B to display a basic prompt instead. To get around the problem, I edited my .kshrc file to add this code at the end:

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

The case statement does not work: PS1 does not switch to

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

for host B.

Any idea what could be the problem?


Thanks to a friend, this code for my prompt works across both hosts A and B:

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

Thanks to all for taking the time.


Here's another one which works for both pdksh and ksh93:

PS1='<$LOGNAME@$HOSTNAME:/${PWD#/}>'
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜