Outils pour utilisateurs

Outils du site


programable_shell_complete

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
programable_shell_complete [2020/02/27 12:45]
bigMax
programable_shell_complete [2020/03/30 12:42] (Version actuelle)
bigMax
Ligne 1: Ligne 1:
 <markdown> <markdown>
-Shell complétion programmable+Complétion shell programmable
 ## Documentation ## Documentation
 1. https://www.gnu.org/software/bash/manual/html_node/Programmable-Completion-Builtins.html 1. https://www.gnu.org/software/bash/manual/html_node/Programmable-Completion-Builtins.html
Ligne 24: Ligne 24:
  
 Dans la fonction, on dispose de 3 variables d'environnement pour implémenter la logique de complétion : Dans la fonction, on dispose de 3 variables d'environnement pour implémenter la logique de complétion :
-__COMP_WORDS__ : Le tableau contenant la liste des mots déjà complétés et en cours de "tapage"+**COMP_WORDS** : Le tableau contenant la liste des mots déjà complétés et en cours de "tapage"
-__COMP_CWORD__ : L'index du mot en cours de "tapage" (le dernier index du tableau COMP_WORDS, ce qui en fait le nombre de mot déjà complétés, puisque l'index commence à 0). +**COMP_CWORD** : L'index du mot en cours de "tapage" (le dernier index du tableau COMP_WORDS, ce qui en fait le nombre de mot déjà complétés, puisque l'index commence à 0). 
-__COMPREPLY__ : Le tableau qui contiendra la liste des mots à proposer à l'utilisateur. Cette variable sera lu par le mécanisme de complétion une fois l'exécution de la fonction terminé.+**COMPREPLY** : Le tableau qui contiendra la liste des mots à proposer à l'utilisateur. Cette variable sera lu par le mécanisme de complétion une fois l'exécution de la fonction terminé.
  
 La fonction est appelée avec ces 3 paramètres : La fonction est appelée avec ces 3 paramètres :
Ligne 42: Ligne 42:
  
 ## Exemples ## Exemples
 +### Completion simple "à 1 seul niveau"
 +Dans cet exemple, la commande `mon_autre_commande` sera complétée avec les mots "foo bar baz".
 +
 +``` bash
 + complete -W "foo bar baz" -- mon_autre_commande
 +```
 +
 +### Completion plus compliqué "à 2 niveaux"
 +Dans cet exemple, la commande `ma_commande` sera complétée par un premier niveau de mots : "foo bar baz".
 +
 +Puis un second niveau de complétion sera proposé lorsque le premier mot sera complété : la commande `ma_commande bar` sera complété par les mots "-o -i -b toto".
 +
 ``` bash ``` bash
 _ma_commande() { _ma_commande() {
Ligne 70: Ligne 82:
 complete -F _ma_commande -- ma_commande complete -F _ma_commande -- ma_commande
  
-complete -W "foo bar baz" -- mon_autre_commande 
 ``` ```
- 
- 
 </markdown> </markdown>
programable_shell_complete.1582807521.txt.gz · Dernière modification: 2020/02/27 12:45 de bigMax