Bash non esegue script in /opt/local/etc/bash_completion.d/


8

Volevo avere il completamento automatico bash per i comandi git, quindi ho lasciato cadere un file di script bash in /opt/local/etc/bash_completion.d/.

Quando apro un nuovo Terminale, il file di script in /opt/local/etc/bash_completion.d/non viene eseguito. Ho verificato che il file di script funziona eseguendo:

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

Ci sono dei passaggi mancanti qui per chiedere a OS X di eseguire automaticamente gli script /opt/local/etc/bash_completion.d/?

Risposte:


8

Per caricare automaticamente tutti gli script da una directory, inseriscili nel tuo ~/.bashrcfile

# 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

3

Sì, è necessario caricarli nella shell.

Questo viene fatto modificando ~/.bashrco ~/.bash_profileaggiungendo il comando . filenameper ciascun file. Questo carica il file e rende disponibili le funzioni. cioè metti il ​​tuo comando sorgente in uno di questi file.

Nota che non dovresti aggiungere /opt/local/etc/bash_completion.d/come solo i macport dovrebbero scrivere lì. Inserisci i file nella tua home directory ad es~/.bash_completion.d/git-completion.bash

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.