Bash führt kein Skript unter /opt/local/etc/bash_completion.d/ aus

8

Ich wollte eine Bash-Autovervollständigung für Git-Befehle, also habe ich eine Bash-Skriptdatei in abgelegt /opt/local/etc/bash_completion.d/.

Wenn ich ein neues Terminal öffne, wird die Skriptdatei in /opt/local/etc/bash_completion.d/nicht ausgeführt. Ich habe überprüft, ob die Skriptdatei funktioniert, indem ich Folgendes ausgeführt habe:

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

Fehlen hier Schritte, um OS X aufzufordern, Skripte automatisch auszuführen /opt/local/etc/bash_completion.d/?

Hanxue
quelle

Antworten:

8

Fügen Sie dies in Ihre ~/.bashrcDatei ein, um automatisch alle Skripte aus einem Verzeichnis zu laden

# 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
quelle
3

Ja, Sie müssen sie in Ihre Shell laden.

Dies erfolgt durch Bearbeiten ~/.bashrcoder ~/.bash_profileHinzufügen des Befehls . filenamefür jede Datei. Dadurch wird die Datei geladen und die Funktionen verfügbar gemacht. dh legen Sie Ihren Quellbefehl in eine dieser Dateien.

Beachten Sie, dass Sie nicht hinzufügen sollten, /opt/local/etc/bash_completion.d/da nur Macports dort schreiben sollten. Legen Sie die Dateien in Ihrem Home-Verzeichnis ab, z~/.bash_completion.d/git-completion.bash

user151019
quelle