Kiedy jestem tab tab
_
w terminalu, Bash sugeruje 206 możliwości. Próbowałem uruchomić jedną z nich, _git_rm
ale nic się nie stało, czym one są?
Oto zrzut ekranu:
Kiedy jestem tab tab
_
w terminalu, Bash sugeruje 206 możliwości. Próbowałem uruchomić jedną z nich, _git_rm
ale nic się nie stało, czym one są?
Oto zrzut ekranu:
Odpowiedzi:
Funkcje, których nazwa zaczyna się od znaku podkreślenia, są częścią programowalnego silnika uzupełniania. Bash postępuje zgodnie z konwencją zsh, w której wywoływana somecommand
jest funkcja generująca uzupełnienia _somecommand
, a jeśli funkcja ta wymaga funkcji pomocniczych, są one wywoływane _somecommand_stuff
.
Te funkcje uzupełniania zwykle nie robią nic użytecznego ani nie zgłaszają błędu, jeśli wywołasz je ręcznie: mają być wywoływane z silnika uzupełniania.
Wynika to z dość powszechnej praktyki w różnych językach programowania, aby używać wiodącego znaku podkreślenia, aby wskazać, że funkcja lub zmienna jest w jakiś sposób wewnętrzna w bibliotece i nie jest przeznaczona dla użytkownika końcowego (lub programisty końcowego).
type _git_rm
prawdopodobnie powie ci, że jest to funkcja.grep -R '_git_rm' /etc/bash_completion.d/
prawdopodobnie to znajdzie. Te funkcje to zwykle te, które zapewniają różne listy ukończeń dobash
uzupełnienia.