#1 Le 12/05/2013, à 13:27
- NairOS
Alimenter l'auto-complétion lors de l'exécution d'un script en Bash
Bonjour ,
Je développe actuellement un petit script en bash-shell et je me demandais s'il était possible "d'alimenter l'auto-complétion". Je m'explique : à un moment dans mon script je demande à l'utilisateur d'indiquer le nom d'un fichier. Ce nom de fichier pouvant être long, le risque d'erreur de l'utilisateur est à envisager, d'où l'utilisation de l'autocomplétion. En gros je voudrais que lorsque l'utilisateur appuie sur [TAB], la fin du nom du fichier se remplisse d'elle-même, lors de l'execution du script (je sais bien que c'est possible lorsque qu'on parcours les dossiers en console).
Par exemple, "alimenter" l'auto-complétion avec le résultat de la commande ls effectuée dans le dossier.
Par avance merci pour toutes réponses ou pistes de solution :-) !
NairOS
Hors ligne
#2 Le 12/05/2013, à 13:42
- Watael
Re : Alimenter l'auto-complétion lors de l'exécution d'un script en Bash
salut,
sers-toi de l'option -e de read.
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#3 Le 12/05/2013, à 14:37
- NairOS
Re : Alimenter l'auto-complétion lors de l'exécution d'un script en Bash
Merci de ta réponse.
Je n'avais jamais vu cette option pour la commande read. Pourrais-tu m'en dire d'avantage? Y'a-t-il une syntaxe particulière à détailler? J'ai essayé d'utiliser simplement read -e lorsque l'utilisateur devait saisir le nom du fichier mais pas d’auto complétion apparente.
Hors ligne
#4 Le 12/05/2013, à 15:10
- Watael
Re : Alimenter l'auto-complétion lors de l'exécution d'un script en Bash
l'option -e active readline pour la lecture de données depuis l'entrée standard.
or, c'est readline qui effectue le complètement.
bind -p | sed -n '/complete/{/^#/d;p}'
bash peut générer un complètement programmable, mais il me semble que ça ne s'applique qu'au shell interactif, donc pas aux scripts.
Ceci demande confirmation!
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#5 Le 12/05/2013, à 21:20
- NairOS
Re : Alimenter l'auto-complétion lors de l'exécution d'un script en Bash
Merci de ta réponse!
Tant pis pour l'auto-complétion, j'espérais que ce serait possible au sein même du script m'enfin
Cordialement,
NairOS
Hors ligne
#6 Le 13/05/2013, à 14:23
- Altak
Re : Alimenter l'auto-complétion lors de l'exécution d'un script en Bash
Tu peux aussi le faire manuellement.
Tu recupere les fichiers present dans le repertoire, tu compare les strings et tu affiche ce qui reste (ou tu auto-complete si il n'en reste qu'un).
Cela peut s'averer long si le repertoire contient énormement de fichier mais c'est faisable.
Hors ligne