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

Prochaine révision
Révision précédente
Dernière révisionLes deux révisions suivantes
programable_shell_complete [2020/02/27 12:40] – créée bigMaxprogramable_shell_complete [2020/02/27 12:56] bigMax
Ligne 1: Ligne 1:
 <markdown> <markdown>
-# Complétion programmable en Shell +# Complétion shell programmable
- +
-Comment réaliser une complétion pour ses petits scripts maison ? +
 ## 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 27: 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 :
-- $le nom de la commande en cours de complétion +__$1__ le nom de la commande en cours de complétion 
-- $le mot en cours de "tapage" +__$2__ le mot en cours de "tapage" 
-- $le mot précédent le mot en cours de "tapage"+__$3__ le mot précédent le mot en cours de "tapage"
  
 ### Recherche des mots qui match ### Recherche des mots qui match
Ligne 59: Ligne 56:
     else     else
         # Le premier mot est déjà écrit         # Le premier mot est déjà écrit
-        local firstWord = "${COMP_WORDS[1]}"+        local firstWord="${COMP_WORDS[1]}"
         case "${COMP_WORDS[1]}" in         case "${COMP_WORDS[1]}" in
-            un) completions="-a -b --test" ;; +            foo) completions="-a -b --test" ;; 
-            deux) completions="--e" ;; +            bar) completions="--i -b toto" ;; 
-            trois) completions="--name" ;; +            baz) completions="--name -a" ;;
-            quattre) completions="-o -i" ;;+
         esac         esac
     fi     fi
Ligne 76: Ligne 72:
 complete -W "foo bar baz" -- mon_autre_commande complete -W "foo bar baz" -- mon_autre_commande
 ``` ```
 +
  
 </markdown> </markdown>
programable_shell_complete.txt · Dernière modification : 2020/03/30 12:42 de bigMax