Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 12/05/2013, à 13:27

NairOS

Alimenter l'auto-complétion lors de l'exécution d'un script en Bash

Bonjour big_smile,
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. wink
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! smile
Tant pis pour l'auto-complétion, j'espérais que ce serait possible au sein même du script m'enfin hmm
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