Bash не работает скрипт в /opt/local/etc/bash_completion.d/

8

Я хотел иметь автозаполнение bash для команд git, поэтому я поместил файл сценария bash в /opt/local/etc/bash_completion.d/.

Когда я открываю новый Терминал, файл сценария /opt/local/etc/bash_completion.d/не запускается. Я проверил, что файл скрипта работает, запустив:

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

Не пропущены ли какие-либо шаги, чтобы попросить OS X автоматически выполнять сценарии /opt/local/etc/bash_completion.d/?

hanxue
источник

Ответы:

8

Чтобы автоматически загрузить все скрипты из каталога, поместите это в свой ~/.bashrcфайл

# 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
источник
3

Да, вам нужно загрузить их в вашу оболочку.

Это делается путем редактирования ~/.bashrcили ~/.bash_profileдобавления команды . filenameдля каждого файла. Это загружает файл и делает функции доступными. т.е. поместите вашу исходную команду в один из этих файлов.

Обратите внимание, что вы не должны добавлять, /opt/local/etc/bash_completion.d/поскольку только macports должен писать туда. Поместите файлы в свой домашний каталог, например~/.bash_completion.d/git-completion.bash

user151019
источник