Bash nie uruchamia skryptu w /opt/local/etc/bash_completion.d/

8

Chciałem mieć autouzupełnianie bash dla poleceń git, więc wrzuciłem do niego plik skryptu bash /opt/local/etc/bash_completion.d/.

Kiedy otwieram nowy Terminal, plik skryptu w /opt/local/etc/bash_completion.d/nie jest wykonywany. Sprawdziłem, czy plik skryptu działa, uruchamiając:

source /opt/local/etc/bash_completion.d/git-completion.bash

Czy brakuje tutaj kroków, aby poprosić OS X o automatyczne wykonanie skryptów /opt/local/etc/bash_completion.d/?

Hanxue
źródło

Odpowiedzi:

8

Aby automatycznie załadować wszystkie skrypty z katalogu, umieść to w swoim ~/.bashrcpliku

# LOAD ALL AUTOCOMPLETIONS IF ANY ARE INSTALLED
if [ -d /usr/local/etc/bash_completion.d ]; then
    for F in "/usr/local/etc/bash_completion.d/"*; do
        if [ -f "${F}" ]; then
            source "${F}";
        fi
    done
fi
frnhr
źródło
3

Tak, musisz załadować je do swojej powłoki.

Odbywa się to poprzez edycję ~/.bashrclub ~/.bash_profiledodanie polecenia . filenamedla każdego pliku. Spowoduje to załadowanie pliku i udostępnienie funkcji. tzn. umieść polecenie źródłowe w jednym z tych plików.

Pamiętaj, że nie powinieneś dodawać do, /opt/local/etc/bash_completion.d/ponieważ tylko Macports powinny tam pisać. Umieść pliki w swoim katalogu domowym, np~/.bash_completion.d/git-completion.bash

użytkownik151019
źródło