#1 Le 09/12/2019, à 11:05
- Anard
Autocompletion dans la commande read
Bonjour,
Je cherche dans un script à demander à l'utilisateur un chemin vers un dossier.
Malheureusement, quand j'utilise la commande read, le terminal n'attend pas de résultat particulier.
J'aimerais par exemple que si on est à la racine de son home et qu'on tape "T-tab" comme réponse, le terminal complète automatiquement par "Téléchargements"
Comment expliquer à la commande read que l'on attend un nom de fichier ou de dossier ?
Aussi, comment, dans le cas où je n'attendrais pas un fichier mais une réponse déterminée, lui indiquer une regex correspondant au résultat attendu ? Par exemple :
read -p "Avez-vous plus ou moins de 30 ans ? " age
# je voudrais que si on tape "pl-tab", le terminal complète par "plus"
Merci.
Dernière modification par Anard (Le 09/12/2019, à 11:31)
"iMack" : GA-H97M-D3H, Intel i5 4460, 16Go DDR3, Intel HD4600, SSD 256+120 / Bootloader Clover - macOS Mojave / Gentoo-Xfce
"Portable" : HP Pavilion DV3500, Intel T6400, 4Go, HDD 500Go / Grub2 - Gentoo-Xfce
Hors ligne
#2 Le 09/12/2019, à 12:22
- credenhill
Re : Autocompletion dans la commande read
hello
pour un nom de fichier,essayer
read -ep "Avez-vous plus ou moins de 30 ans ? " age
Dernière modification par credenhill (Le 09/12/2019, à 12:22)
Hors ligne
#3 Le 09/12/2019, à 12:34
- Anard
Re : Autocompletion dans la commande read
Merci ça fonctionne !
Je n'avais pas bien compris ( ce n'est pas très clair...) :
-e If the standard input is coming from a terminal, readline is used to obtain the line.
Si jamais, avez-vous une idée pour un choix multiple ? La commande select attend uniquement un chiffre, elle n'auto-complète pas une réponse alphabétique qui correspondrait à la liste des choix...
"iMack" : GA-H97M-D3H, Intel i5 4460, 16Go DDR3, Intel HD4600, SSD 256+120 / Bootloader Clover - macOS Mojave / Gentoo-Xfce
"Portable" : HP Pavilion DV3500, Intel T6400, 4Go, HDD 500Go / Grub2 - Gentoo-Xfce
Hors ligne
#4 Le 09/12/2019, à 14:20
- credenhill
Re : Autocompletion dans la commande read
je n'ai jamais essayé, mais regarder là
complete -pr [nom ...]
Spécifie comment les arguments de chaque nom doivent être complétés. Si l'option -p est fournie, ou si aucune option n'est fournie, les spécifications de complétion existantes sont affichés de telle manière qu'elles puissent être réutilisées comme entrée. L'option -r retire une spécification de complétion à chaque nom fourni, ou, si aucun nom n'est fourni, toutes les spécifications de complétions
http://manpagesfr.free.fr/man/man1/bash.1.html
Dernière modification par credenhill (Le 09/12/2019, à 14:21)
Hors ligne