[UNIX - SHELL] Définition du prompt en ksh

Définition du prompt en ksh [UNIX - SHELL] - Shell/Batch - Programmation

Marsh Posté le 04-04-2006 à 17:54:54    

Bonjour,
 
Dans le fichier .bash_profile, j'ai défini le prompt de cette manière :
 

Code :
  1. export PS1='$PWD>\n'


 

Code :
  1. /home/sybase>
  2. echo "TEST"
  3. TEST
  4. /home/sybase>


 
Le prompt est sur une ligne et la saisie des commandes se fait sur la ligne juste en dessous.
 
Je souhaite faire la même chose en définissant le prompt dans le fichier .profile pour le korn shell mais cela ne fonctionne pas j'ai tenté plusieurs chose mais rien ne marche, auriez vous une idée, merci.  
 

Code :
  1. export PS1='$HOSTNAME:$PWD>\n'


 

Code :
  1. /home/sybase>necho "TEST"
  2. /home/sybase>nTEST


 

Reply

Marsh Posté le 04-04-2006 à 17:54:54   

Reply

Marsh Posté le 04-04-2006 à 18:24:43    

Peut-être que $HOSTNAME n'est pas défini ou que le shell n'est pas du korn shell quand il s'agit d'un batch, et qu'il faille rajouter ceci au début :

#!/bin/ksh

Reply

Marsh Posté le 04-04-2006 à 18:48:19    

Voici le fichier d'initialisation pour le bash
 
.bash_profile

Code :
  1. #!/bin/ksh
  2. #Initialisation Sybase Environement
  3. # /sybase/MUTUQUAL/release/SYBASE.sh
  4. # est un lien vers
  5. # /sybase/MUTUQUAL/release/syb125/SYBASE.sh
  6. # On sauvegarde le Path initiale car SYBASE.sh
  7. # rajoute son chemin en "append", ce qui peut provoquer
  8. # des problemes si on appelle plusieurs fois SYBASE.sh
  9. if [ ${PATH_INITIAL}="" ] ; then
  10.     PATH_INITIAL=${PATH}
  11. else
  12.     PATH=${PATH_INITIAL}
  13. #date
  14. fi
  15. export PATH_INITIAL
  16. export PATH
  17. . /sybase/MUTUQUAL/release/SYBASE.sh
  18. alias is='isql -U$SA -S$SERVEUR -w2000'
  19. alias i="cd $SYBASE/$SYBASE_ASE/install"
  20. alias d="cd /sybase/MUTUQUAL/dump"
  21. . ./MUTUQUAL.ksh
  22. PS1='$PWD>\n'
  23. export PS1
  24. stty erase ^H
  25. alias ls="ls -F"


 
Voici le fichier d'initialisation pour le korn shell
 
.profile

Code :
  1. #!/bin/ksh
  2. #Initialisation Sybase Environement
  3. # /sybase/MUTUQUAL/release/SYBASE.sh
  4. # est un lien vers
  5. # /sybase/MUTUQUAL/release/syb125/SYBASE.sh
  6. # On sauvegarde le Path initiale car SYBASE.sh
  7. # rajoute son chemin en "append", ce qui peut provoquer
  8. # des problemes si on appelle plusieurs fois SYBASE.sh
  9. if [ ${PATH_INITIAL}="" ] ; then
  10.     PATH_INITIAL=${PATH}
  11. else
  12.     PATH=${PATH_INITIAL}
  13. #date
  14. fi
  15. export PATH_INITIAL
  16. export PATH
  17. . /sybase/MUTUQUAL/release/SYBASE.sh
  18. alias is='isql -U$SA -S$SERVEUR -w2000'
  19. alias i="cd $SYBASE/$SYBASE_ASE/install"
  20. alias d="cd /sybase/MUTUQUAL/dump"
  21. . ./MUTUQUAL.ksh
  22. PS1='$PWD>\n'
  23. export PS1
  24. stty erase ^H
  25. alias ls="ls -F"


 

Code :
  1. :/home/sybase>nexec bash
  2. SUNQUAL:/home/sybase>
  3. echo "test"
  4. test
  5. SUNQUAL:/home/sybase>
  6. exec ksh
  7. SUNQUAL:/home/sybase>necho "test"
  8. test
  9. SUNQUAL:/home/sybase>n


 
Comment définir le prompt dans le .profile pour obtenir :  

Code :
  1. exec ksh
  2. SUNQUAL:/home/sybase>
  3. echo "test"
  4. test
  5. SUNQUAL:/home/sybase>

Reply

Marsh Posté le 05-04-2006 à 12:12:32    

Merci pour tout ce code. Mais, excuse-moi, je ne vois plus très bien quel est le problème. Quelle est la ligne qui pose problème ? Est-ce que l'affichage du chemin marche ? Est-ce que l'affichage du hostname qui ne marche pas ?
 
Quoi qu'il en soit j'avais utilisé ceci qui marchait :

set prompt="`hostname`> "
ou
export PS1='$PWD>'
ou
export PS1="[`whoami`@`hostname`:$PWD]>"


Reply

Marsh Posté le 05-04-2006 à 15:16:25    

Je souhaite avoir le prompt sur une ligne et le curseur de saisie de commande juste sur la ligne en dessous.
 
En tapant le code ci-dessous dans le .profile j'obtiens ce que je voulais :
 
PS1='$PWD>"
"'
export PS1
 
Merci.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed