Le script Bash n’exécute pas à /opt/local/etc/bash_completion.d/

8

Je voulais avoir l'auto-complétion bash pour les commandes git, alors j'ai déposé un fichier de script bash dans /opt/local/etc/bash_completion.d/.

Lorsque j'ouvre un nouveau terminal, le fichier de script /opt/local/etc/bash_completion.d/n'est pas exécuté. J'ai vérifié que le fichier de script fonctionne en exécutant:

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

Manque-t-il ici une étape pour demander à OS X d’exécuter automatiquement des scripts /opt/local/etc/bash_completion.d/?

hanxue
la source

Réponses:

7

Afin de charger automatiquement tous les scripts d'un répertoire, mettez ceci dans votre ~/.bashrcfichier

# 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
la source
3

Oui, vous devez les charger dans votre shell.

Ceci est fait en éditant ~/.bashrcou en ~/.bash_profileajoutant la commande . filenamepour chaque fichier. Cela charge le fichier et rend les fonctions disponibles. c'est-à-dire mettez votre commande source dans l'un de ces fichiers.

Notez que vous ne devriez pas ajouter /opt/local/etc/bash_completion.d/car seuls les macports devraient y écrire. Placez les fichiers dans votre répertoire personnel, par exemple~/.bash_completion.d/git-completion.bash

marque
la source