Jakie są te polecenia podkreślenia?


10

Kiedy jestem tab tab _w terminalu, Bash sugeruje 206 możliwości. Próbowałem uruchomić jedną z nich, _git_rmale nic się nie stało, czym one są?

Oto zrzut ekranu:

wprowadź opis zdjęcia tutaj


11
type _git_rmprawdopodobnie 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ń do bashuzupełnienia.
manatwork

@manatwork prześlij to jako odpowiedź.
derobert

@derobert, chciałem jedynie podać szybką wskazówkę, aby właściciel pytania otrzymał coś, zanim odpowiedź eksperta zostanie opublikowana ~ 7 godzin później.
manatwork

@manatwork Odpowiedź jest dla mnie wystarczająca ... Mogę dowiedzieć się więcej: D Jeśli nie masz nic przeciwko, zaakceptuję odpowiedź Gillesa, choć myślę, że powinienem zaakceptować twoją ...
losowanie

@draw, odpowiedź Gillesa jest prawdopodobnie oparta na badaniach i doświadczeniu, a moja na przypadkowych obserwacjach poczynionych podczas przeszukiwania katalogów. Proszę, zaakceptuj jego.
manatwork

Odpowiedzi:


12

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 somecommandjest 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).

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.