8 votes

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

Je voulais avoir l'autocomplétion bash pour les commandes git, donc j'ai déposé un fichier bash script dans le fichier /opt/local/etc/bash_completion.d/ .

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

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

Y a-t-il des étapes manquantes ici pour demander à OS X d'exécuter automatiquement les scripts en /opt/local/etc/bash_completion.d/ ?

8voto

frnhr Points 278

Afin de charger automatiquement tous les scripts à partir d'un répertoire, mettez ceci dans vos ~/.bashrc fichier

# 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

3voto

yoliho Points 340

Oui, vous devez les charger dans votre shell.

Cela se fait en modifiant ~/.bashrc o ~/.bash_profile et en ajoutant la commande . filename pour chaque fichier. Cela charge le fichier et rend les fonctions disponibles. Par exemple, placez votre commande source dans l'un de ces fichiers.

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

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X