2011-01-18 2 views
1

je dois travailler avec un ID utilisateur NFS entre deux hôtes: Une course Ksh 93 et ​​en cours d'exécution B pdksh 88.rapide sur mesure PS1 .kshrc ne fonctionne pas

Mon problème a à voir avec l'invite de commande que j'ai créé sur A: il fonctionne comme une couleur de charme et d'affichage:

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

Mais je passer à B, tout va en enfer (info privée supprimé). L'invite ne parvient pas à afficher les couleurs comme l'hôte A; à la place, les codes de couleurs sont affichés "en clair". L'invite sur l'hôte B n'affiche pas les couleurs comme l'hôte A, donc je veux que B affiche une invite de base à la place. Pour contourner le problème, j'édité mon fichier .kshrc ajouter ce code à la fin:

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 

La déclaration de cas ne fonctionne pas: PS1 ne passe pas

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

pour l'hôte B.

Une idée de ce qui pourrait être le problème?

+0

Nulle part dans votre question, vous avez dit ce qu'il est que cela arrive. En quoi le comportement diffère-t-il de ce que vous attendiez? Quels messages d'erreur obtenez-vous? –

+0

Avez-vous essayé de mettre en valeurs simples pour PS1 comme "A", "B" juste pour vérifier que les paramètres d'hôte sont réglés correctement? Construisez les choses morceau par morceau et voyez quand ça casse et vous travaillerez probablement pourquoi ... –

+0

@Dennis: Mon mauvais. Je pensais que c'était évident. L'invite sur l'hôte B n'affiche pas les couleurs comme l'hôte A, donc je veux afficher une invite de base à la place. – Chris

Répondre

3

Merci à un ami, ce code pour mes œuvres rapides sur les deux hôtes A et B:

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

Merci à tous pour prendre le temps.

+0

Fonctionne dans ksh88 Version M-11/16/88f –

0

est ici un autre qui fonctionne aussi bien pour les pdksh et ksh93:

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