LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Newbie (https://www.linuxquestions.org/questions/linux-newbie-8/)
-   -   Ksh93 vs. Pdksh88: Custom PS1 prompt not working (https://www.linuxquestions.org/questions/linux-newbie-8/ksh93-vs-pdksh88-custom-ps1-prompt-not-working-857299/)

kristo5747 01-19-2011 10:38 AM

Ksh93 vs. Pdksh88: Custom PS1 prompt not working
 
Greetings!

I have to work with a NFS user id between two hosts: A running Ksh 93 and B running pdksh 88. Both host run RedHat.

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

Code:

  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".

Code:

  $'\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

Code:

    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`]>"`.

Any idea what could be the problem? Thanks!

kristo5747 01-19-2011 11:55 AM

A very clever friend of mine figured out my problem:

Code:

PS1="$(printf "\033[46;31m%s@\033[1;33m%s\033[0m>" $(logname) $(hostname -s))"
PS1 works across both hosts, A and B. Thanks for taking the time.


All times are GMT -5. The time now is 03:10 AM.