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

8

Volevo avere il completamento automatico di bash per i comandi git, quindi ho abbandonato 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 funzioni 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 in /opt/local/etc/bash_completion.d/ ?

    
posta hanxue 30.09.2013 - 19:10
fonte

2 risposte

6

Per caricare automaticamente tutti gli script da una directory, inserisci questo nel tuo file ~/.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
    
risposta data 11.07.2015 - 15:03
fonte
3

Sì, è necessario caricarli nella shell.

Questo viene fatto modificando ~/.bashrc o ~/.bash_profile e aggiungendo il comando . filename per ogni file. Questo carica il file e rende disponibili le funzioni. Ad esempio, inserisci il tuo comando sorgente in uno di questi file.

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

    
risposta data 30.09.2013 - 19:26
fonte

Leggi altre domande sui tag