programable_shell_complete
Différences
Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
programable_shell_complete [2020/02/27 12:40] – créée bigMax | programable_shell_complete [2020/03/30 12:42] (Version actuelle) – bigMax | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
< | < | ||
- | # Complétion programmable | + | # Complétion |
- | + | ||
- | Comment réaliser une complétion pour ses petits scripts maison ? | + | |
## Documentation | ## Documentation | ||
1. https:// | 1. https:// | ||
Ligne 27: | Ligne 24: | ||
Dans la fonction, on dispose de 3 variables d' | Dans la fonction, on dispose de 3 variables d' | ||
- | - COMP_WORDS : Le tableau contenant la liste des mots déjà complétés et en cours de " | + | - **COMP_WORDS** : Le tableau contenant la liste des mots déjà complétés et en cours de " |
- | - COMP_CWORD : L' | + | - **COMP_CWORD** : L' |
- | - COMPREPLY : Le tableau qui contiendra la liste des mots à proposer à l' | + | - **COMPREPLY** : Le tableau qui contiendra la liste des mots à proposer à l' |
La fonction est appelée avec ces 3 paramètres : | La fonction est appelée avec ces 3 paramètres : | ||
- | - $1 le nom de la commande en cours de complétion | + | - __$1__ le nom de la commande en cours de complétion |
- | - $2 le mot en cours de " | + | - __$2__ le mot en cours de " |
- | - $3 le mot précédent le mot en cours de " | + | - __$3__ le mot précédent le mot en cours de " |
### Recherche des mots qui match | ### Recherche des mots qui match | ||
Ligne 45: | 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 | ||
+ | | ||
+ | ``` | ||
+ | |||
+ | ### 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 59: | Ligne 68: | ||
else | else | ||
# Le premier mot est déjà écrit | # Le premier mot est déjà écrit | ||
- | local firstWord = " | + | local firstWord=" |
case " | case " | ||
- | | + | |
- | | + | |
- | | + | |
- | quattre) completions=" | + | |
esac | esac | ||
fi | fi | ||
Ligne 74: | Ligne 82: | ||
complete -F _ma_commande -- ma_commande | complete -F _ma_commande -- ma_commande | ||
- | complete -W "foo bar baz" -- mon_autre_commande | ||
``` | ``` | ||
- | |||
</ | </ |
programable_shell_complete.1582807204.txt.gz · Dernière modification : 2020/02/27 12:40 de bigMax