A w jaki sposób automatycznie uzupełnia aliasy?
A w jaki sposób automatycznie uzupełnia aliasy?
Odpowiedzi:
W zależności od polecenia:
/etc/bash_completion.d/*
(lub innej lokalizacji w niektórych systemach). Funkcje te są zarejestrowane z wbudowaną (np mówi bash do wywołania funkcji po naciśnięciu na komendę). Używają wbudowanego, aby powiedzieć bashowi „oto możliwe uzupełnienia”.complete
complete -F _find find
_find
Tabfind
compgen
--help
i przeanalizuje dane wyjściowe. Takie polecenia można zarejestrować za pomocą complete
wbudowanego, np complete -F _longopt ls
. _longopt
jest w rzeczywistości funkcją generowania zakończenia, która zdarza się analizować dane wyjściowe polecenia, a nie korzystać ze stałej listy. (Istnieją inne bardziej wyspecjalizowane funkcje uzupełniania, które analizują dane wyjściowe polecenia w celu wygenerowania możliwych uzupełnień; poszukaj /etc/bash_completion.d/*
przykładów.)complete
Wbudowaną posiada opcje, które, na przykład -A
dla aliasów.Wsparcie dla ukończenia bash jest dostępne w Debianie i Ubuntu dzięki pakietowi bash . Zazwyczaj musisz również odkomentować następujące elementy /etc/bash.bashrc
i / lub .bashrc
uzyskać pliki ukończenia bash. Poniższe pochodzi z /etc/bash.bashrc
:
# enable bash completion in interactive shells
if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
. /etc/bash_completion
fi
aby to zadziałało. Zazwyczaj nie lubię tego w obu przypadkach. Obsługa interaktywnych / loginowych powłok w Debianie jest trochę bałaganu.
Podobne komentarze przypuszczalnie dotyczą innych dystrybucji, choć może domyślnie włączają pozyskiwanie.