W jaki sposób Bash w Ubuntu zna listę działań określonych przez narzędzie?
Na przykład po dwukrotnym wpisaniu apt-get i tab zobaczę tylko usuwanie, aktualizację, aktualizację ... itd., Ale nie akcje dla innego polecenia lub plików w bieżącym katalogu.
Rozwijam narzędzie wiersza polecenia w Go i chciałbym udostępnić tę funkcję dla obsługiwanych dystrybucji.
bash
ubuntu
autocomplete
Amged Rustom
źródło
źródło
Odpowiedzi:
Robi to za pomocą funkcji uzupełniania bash v4. Kod zakończenia
apt-get
jest dostarczany przezbash-completion
paczkę i znajduje się pod adresem/usr/share/bash-completion/completions/apt-get
. Aplikacje, które mają ukończenie i nie są częściąbash-completion
pakietu podstawowego , umieszczają w nich swoje skrypty uzupełniania/etc/bash_completion.d
.Uzupełnienia są ładowane poprzez pozyskiwanie
/etc/bash_completion
. Dokładnie, gdzie to jest zrobione, będzie się różnić w zależności od wersji Debiana lub Ubuntu. To z kolei zaopatruje wszystko w/usr/share/bash-completion/completions
i/etc/bash_completion.d
.źródło