[Précédent (date)] [Suivant (date)] [Précédent (sujet)] [Suivant (sujet)] [Index par date] [Index par sujet]
Re: Comment colorer mon shell que je trouve un peu... hum.. "plate"
- To:
- Subject: Re: Comment colorer mon shell que je trouve un peu... hum.. "plate"
- From: François Pinard <>
- Date: Mon, 28 Feb 2000 18:31:14 GMT
-
Newsgroups: qc.comp.os.linux.aide
- Organization: @@@@@@ I See 3D http://www.ISee3D.com/ @@@@@@
-
References: <[email protected]>
- Sender:
- User-Agent: Gnus/5.0803 (Gnus v5.8.3) Emacs/20.3
[email protected] (Mathieu) écrit:
> Comment faire le hightlite sur les différents types de fichier dans
> mon shell (qui est bash en passant)
D'autres ont déjà répondu à cette question précise. Toutefois, puisque
l'idée semble être d'ajouter un peu de couleur dans l'interaction du shell,
le script suivant pourrait peut-être t'amuser. Je m'arrange pour exécuter:
eval `set-prompt`
lors du démarrage d'un shell. On peut aussi faire:
eval `set-prompt N`
avec N étant un nombre entre 0 et 9, pour forcer un style de coloration
particulier. J'utilise des couleurs agressives (jaune et rouge) comme
super-usager, et des couleurs plus douces (vert et bleu) comme usager
ordinaire. Je n'examine pas le script outre-mesure pour voir s'il s'exécute
facilement hors de mon environnement, vous me direz ce qu'il en est! :-)
J'espère aussi que l'usage d'une pièce-jointe MIME ne vous créera pas
de problème particulier -- il est bon d'utiliser un lecteur de messagerie
qui se débrouille bien avec MIME, de toute façon!
#!/bin/bash
# Fournir sur stdout les commandes pour changer l'invite.
# Copyright © 1998, 2000 Progiciels Bourbeau-Pinard inc.
# François Pinard <[email protected]>, 1998.
# Si aucun paramètre n'est donné, le style est déterminé automatiquement.
# Sinon, c'est un nombre entre 0 et 9. Voir le dernier `case' plus bas.
if [ $# = 0 ]; then
if [ "$RANDOM" = "$RANDOM" ]; then
style=0
else
case $TERM in
dumb)
if [ -n "$EMACS" -a -n "$DISPLAY" ]; then
style=6
else
style=2
fi
;;
emacs|linux|screen)
# Auparavant, style=4 pour `/dev/ttyN'.
style=6
;;
vt100*)
echo 1>&2 -n "Est-ce que le fond est blanc (y/n)? [y] "
read answer
[ -z "$answer" ] && answer=y
case "$answer" in
y) style=6 ;;
*) style=4 ;;
esac
;;
xterm)
style=6
;;
*)
style=2
;;
esac
fi
[ $LOGNAME = root ] && style=`expr $style + 1`
else
style=$1
fi
if [ -n "$DOSWIN" ]; then
# Le bash de DJGPP ajoute plusieurs blancs suffixes à \h.
uh='$LOGNAME@$HOST:\w'
else
uh='\u@\h:\w'
fi
case $style in
0) # Prompts under sh for user
echo 'PS1='\''$ '\'
echo 'PS2='\'' '\'
;;
1) # Prompts under sh for super-user
echo 'PS1='\''# '\'
echo 'PS2='\'' '\'
;;
2) # Prompts under bash/ksh
echo 'PS1='\''$? '$uh' $ '\'
echo 'PS2='\'' '$uh' '\'
;;
3) # Prompts under bash/ksh for super-user
echo 'PS1='\''$? '$uh' # '\'
echo 'PS2='\'' '$uh' '\'
;;
4) # Color prompts for user, over black
echo 'PS1='\''\[[;32m\]$?\[[1;36m\] '$uh'\[[;1;32m\] $\[[m\] '\'
echo 'PS2='\'' \[[;36m\] '$uh'\[[m\] '\'
;;
5) # Color prompts for super-user, over black
echo 'PS1='\''\[[;32m\]$?\[[1;33m\] '$uh'\[[1;31m\] #\[[m\] '\'
echo 'PS2='\'' \[[;1;31m\] '$uh'\[[m\] '\'
;;
6) # Color prompts for user, over white
echo 'PS1='\''\[[;42m\]$?\[[1;46m\] '$uh'\[[;5;42m\] $\[[m\] '\'
echo 'PS2='\'' \[[;46m\] '$uh'\[[m\] '\'
;;
7) # Color prompts for super-user, over white
echo 'PS1='\''\[[;42m\]$?\[[1;43m\] '$uh'\[[5;41m\] #\[[m\] '\'
echo 'PS2='\'' \[[;41m\] '$uh'\[[m\] '\'
;;
8) # Color prompts for user, xterm over white
echo 'PS1='\''\[[1;46m\]$?\[]0;'$uh'\a\] $\[[m\] '\'
echo 'PS2='\'' \[[;46m\] '$uh'\[[m\] '\'
;;
9) # Color prompts for super-user, xterm over white
echo 'PS1='\''\[[1;43m\]$?\[]0;'$uh'\a\] #\[[m\] '\'
echo 'PS2='\'' \[[;41m\] '$uh'\[[m\] '\'
;;
esac
--
François Pinard http://www.iro.umontreal.ca/~pinard