Gli script di lettura bash di Mac OS X per tutti gli utenti (script di completamento della tablatura) dal percorso /opt/local/etc/bash_completion.d?

3

Mi sono imbattuto in alcune istruzioni nel libro "Pro Git"

Suggerisce:

  1. Scarica questo file: link

    If you use the Bash shell, Git comes with a nice auto-completion script you can enable. Download it directly from the Git source code at https://github.com/git/git/blob/master/contrib/completion/git-completion.bash . Copy this file to your home directory, and add this to your .bashrc file:

    source ~/git-completion.bash

    Fonte link

    (inserire questa riga in .bashrc non funzionerà nei sistemi Mac OS X di cui ho discusso qui: Perché l'origine di Mac OS X ~ / .bashrc? )

  2. Metti questo file git-completion.bash (in      /opt/local/etc/bash_completion.d se vuoi il completamento di bash     (per il comando git) per funzionare su tutti gli account utente. (Come se bash leggesse tutti gli script in /opt/local/etc/bash_completion.d )

    If you want to set up Git to automatically have Bash shell completion for all users, copy this script to the /opt/local/etc/bash_completion.d directory on Mac systems or to the /etc/bash_completion.d/ directory on Linux systems. This is a directory of scripts that Bash will automatically load to provide shell completions.

    Fonte: link

Ho scoperto che bash di Mac OS NON legge gli script all'interno di /opt/local/etc/bash_completion.d . Ho messo il file lì (ho creato tutte le cartelle, perché non esistevano):

Eilcompletamentodigitnonfunzionasunessunaccount.

GliscriptdiletturabashdiMacOSXpertuttigliutentida/opt/local/etc/bash_completion.d?

Illibro"Pro Git" è sbagliato? Posso segnalarlo sulla loro pagina Github?

O mi sbaglio?

    
posta Paul Brewczynski 04.02.2014 - 09:16
fonte

2 risposte

-1

I file core di completamento di bash non sono installati come parte di OS X, quindi non c'è nessun posto dove aggiungere il tuo completamento git perché venga raccolto dal core.

Mi scuso ma non sono sicuro di come ho installato il completamento di bash, ma penso di aver usato MacPorts, puoi anche usare Homebrew.

I do hanno la cartella /usr/local/opt/bash-completion/etc/bash_completion.d che contiene i file di completamento per un numero di strumenti da riga di comando. La funzione bash_completion legge certamente tutti i file in questa directory.

Quindi prima devi installare bash-completion quindi il file di completamento di git e tutto andrà bene.

    
risposta data 04.02.2014 - 10:04
fonte
-1

Bash legge solo gli script di default nella tua home directory, o se mancano in /etc . Vedi la documentazione di Bash. Se si utilizza Terminal.app di OSX, per impostazione predefinita legge ~/.bash_profile .

Questo vale per tutti bash su Linux o altri sistemi operativi.

Per leggere da un'altra directory, ad es. /opt/local/etc/bash_completion.d devi modificare i tuoi file di avvio al sorgente (ad esempio includi) i file da lì

Le istruzioni per lo script non menzionano /opt/local/... che è una posizione non standard su qualsiasi Unix. (non standard è permesso essere usato da pacchetti di terze parti ma non definito cosa dovrebbe essere lì dentro) Dicono

  1. Copy this file to somewhere (e.g. ~/.git-completion.sh).
  2. Add the following line to your .bashrc/.zshrc:

    source ~/.git-completion.sh
    
  3. Consider changing your PS1 to also show the current branch, see git-prompt.sh for details.

La citazione del programma presuppone che tu sappia bash. Tutto ciò che viene detto è mettere i file dalla prima citazione in una posizione specifica se si desidera che tutti gli utenti della macchina li usino e non in ~ in cui solo l'utente che lo installa può vederli. il punto è multiutente rispetto a singolo utente.

Sceglie anche quel percorso poiché nient'altro lo usa e non dovresti modificare% file% di file in OS X, poiché gli aggiornamenti del sistema operativo di Apple potrebbero sovrascriverli, quindi devi scegliere un altro posto. (Avrei scelto qualcosa sotto /etc in quanto esiste la destinazione degli script mantenuti manualmente).

/usr/local è la posizione corretta per modificare e aggiungere la fonte. Vedi la tua altra domanda e il manuale di bash per l'impostazione di ~/.bashrc Il modo suggerito da bash è l'origine ~/.bash_profile in .bashrc . Nota che su OS X utilizzando Terminal.app non è l'unico modo di eseguire shell in modo che possano esserci sessioni che iniziano con .bash_profile .

    
risposta data 04.02.2014 - 12:25
fonte

Leggi altre domande sui tag