[bash] activer l'auto completion apres sudo

activer l'auto completion apres sudo [bash] - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 17-04-2005 à 16:29:44    

bonjour,
voila j'aimerais que l'auto_completion pr les commandes fonctionne après un sudo... Je suppose qu'il doit y avoir qqch a mettre dans /etc/bash_completion  
 
merci d'avance

Reply

Marsh Posté le 17-04-2005 à 16:29:44   

Reply

Marsh Posté le 18-04-2005 à 13:59:25    

:bounce:

Reply

Marsh Posté le 18-04-2005 à 15:36:26    

La seule chose que je peux te dire, c'est que chez moi ça marche sans rien faire (debian).
Bon courage.

Reply

Marsh Posté le 18-04-2005 à 18:02:17    

tu px poster ton /etc/bash_completion stp ?

Reply

Marsh Posté le 18-04-2005 à 18:09:46    

Le bash_completion de Debian fait 6000 lignes...

Reply

Marsh Posté le 18-04-2005 à 18:17:24    

ué en effet le mien a 8000 lignes. le pire c ke je suis ss debian et ke ca ne fonctionne pas chez moi

Reply

Marsh Posté le 18-04-2005 à 18:41:02    

6000, 8000 lignes!!! :ouch:
Mais il y a quoi dedans? la liste complète des mots complétables?

Reply

Marsh Posté le 18-04-2005 à 18:57:09    

J'ai regardé dedans mais j'ai rien capté :ouch:

Reply

Marsh Posté le 18-04-2005 à 19:40:50    

euh en fait je n'avais pas la ligne :  
[ -f /etc/bash_completion ] && source /etc/bash_completion
maintenant ca marche impeccable...

Reply

Marsh Posté le 18-04-2005 à 19:51:05    

autant utiliser un shell qui gère tout ca de manière plus propre, au lieu de saloper l'environnement avec des tas de variables (voir sortie de la commande set)

Reply

Marsh Posté le 18-04-2005 à 19:51:05   

Reply

Marsh Posté le 18-04-2005 à 19:54:35    

Heu j'ai pas de fichier /etc/bash_completion sous OS X, y a quoi dedans en gros?

Reply

Marsh Posté le 18-04-2005 à 20:12:18    

petit exemple bien pratique:

Code :
  1. # Linux insmod(8), modprobe(8) and modinfo(8) completion. This completes on a
  2. # list of all available modules for the version of the kernel currently
  3. # running.
  4. #
  5. _insmod()
  6. {
  7. local cur prev modpath
  8. COMPREPLY=()
  9. cur=${COMP_WORDS[COMP_CWORD]}
  10. prev=${COMP_WORDS[COMP_CWORD-1]}
  11. modpath=/lib/modules/`uname -r`
  12. # behave like lsmod for modprobe -r
  13. if [ $1 = "modprobe" ] &&
  14.    [ "${COMP_WORDS[1]}" = "-r" ]; then
  15.  COMPREPLY=( $( /sbin/lsmod | \
  16.    awk '{if (NR != 1 && $1 ~ /^'$cur'/) print $1}' ) )
  17.  return 0
  18. fi
  19. # do filename completion if we're giving a path to a module
  20. if [[ "$cur" == */* ]]; then
  21.  _filedir '@(?(k)o?(.gz))'
  22.  return 0
  23. fi
  24. if [ $COMP_CWORD -gt 1 ] &&
  25.    [[ "${COMP_WORDS[COMP_CWORD-1]}" != -* ]]; then
  26.  # do module parameter completion
  27.  COMPREPLY=( $( /sbin/modinfo -p ${COMP_WORDS[1]} 2>/dev/null | \
  28.         awk '{if ($1 ~ /^parm:/ && $2 ~ /^'$cur'/) { print $2 } \
  29.   else if ($1 !~ /:/ && $1 ~ /^'$cur'/) { print $1 }}' ) )
  30. elif [ -r $modpath -a -x $modpath ]; then
  31.  # do module name completion
  32.  COMPREPLY=( $( command ls -R $modpath | \
  33.   sed -ne 's/^\('$cur'.*\)\.k\?o\(\|.gz\)$/\1/p') )
  34. else
  35.  _filedir
  36. fi
  37. return 0
  38. }
  39. complete -F _insmod $filenames insmod modprobe modinfo
  40. }

Reply

Marsh Posté le 18-04-2005 à 21:53:58    

ory a écrit :

autant utiliser un shell qui gère tout ca de manière plus propre, au lieu de saloper l'environnement avec des tas de variables (voir sortie de la commande set)

La complétion de bash est programmable, ça n'a rien à voir avec de bêtes variables.

Reply

Sujets relatifs:

Leave a Replay

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