Czy have
słowo kluczowe w bash? Lub czy skrypty uzupełniania bash używają języka, który nie jest bash?Hasło "have" dla zakończenia bashu
have gcc &&
_gcc()
{
Jest to zjawisko powszechne. Zobacz: grep "have .* &&" /etc/bash_completion.d/*
Nie mogłem znaleźć żadnych informacji na temat samouczków ukończenia bash, które widziałem i nie mogłem znaleźć żadnych informacji w man bash
. Trudno jest też "mieć" google. Gdzie znajdę dokumentację na ten temat?
Zgaduję, że ma to związek z upewnieniem się, że istnieje gcc
w PATH
?
edytuj: tak. /etc/bash_completion
zawiera:
have()
{
unset -v have
# Completions for system administrator commands are installed as well in
# case completion is attempted via `sudo command ...'.
PATH=$PATH:/sbin:/usr/sbin:/usr/local/sbin type $1 &>/dev/null &&
have="yes"
}
Dzięki chepner. Teraz rozumiem. Kiedy bash czyta w plikach ukończenia, jeśli PATH nie ma programu, nie ma potrzeby utrzymywania skryptu zakończenia w pamięci, więc po prostu przeskakuje nad nim. Ma doskonały sens. Wkładam moje 'have' w moje pytanie w celach informacyjnych. Chyba nie mam "_have". Zastanawiam się dlaczego. –
Nie wiem zbyt wiele o wewnętrznych elementach projektu zakończenia basha. Wyciągnąłem powyższy kod z [bash-completion 'git' repository] (http://bash-completion.alioth.debian.org) właśnie dziś rano; może to być nowy kierunek rozwoju, biorąc pod uwagę fakt, że notka o 'have' jest przestarzała na rzecz' _have'. – chepner
Tak, założę się, że masz rację. Dzięki. –