(6 risposte)
Chiuso 4 mesi fa.
Da questa guida al completamento di Bash apprendiamo che affinché Bash esegua il completamento automatico è necessario eseguire . /etc/etc/bash_completion.d/foobar
(nota lo spazio dopo .
) affinché il completamento di Bash funzioni.
$ /etc/bash_completion.d/ssh
bash: /etc/bash_completion.d/ssh: Permission denied
$ . /etc/bash_completion.d/ssh
$ ls -l /etc/bash_completion.d | grep ssh
-rw-r--r-- 1 root root 297 Jan 28 18:04 ssh
È .
una scorciatoia per il source
comando? Se no, allora che cos'è? È impossibile cercare su Google, man source
non restituisce nulla e apropos source
e info source
dare così tante informazioni irrilevanti che non posso dire se quello che sto cercando è lì dentro. Come potrei anche iniziare a utilizzare RTFM per trovare io stesso la risposta a questa domanda?
Risposta accettata:
Sì . è identico al source
funzione.
Come sempre il primo riferimento è il man bash
pagina di manuale in cui puoi confermare la tua ipotesi iniziale cercando / source
…funzione shell o script eseguito con . o fonte...
è il primo riferimento, ma un po' più avanti trovi una sezione Comandi incorporati nella shell
. filename [arguments]
source filename [arguments]
Legge ed esegue comandi da nomefile nell'ambiente della shell
corrente e restituisce lo stato di uscita dell'ultimo comando eseguito
da nomefile. Se il nome del file non contiene una barra, i nomi dei file in
PATH vengono utilizzati per trovare la directory contenente il nome del file. Il file
cercato in PATH non deve essere eseguibile. Quando bash non è in modalità posix
, la directory corrente viene cercata se non viene trovato alcun file in PATH.
Se l'opzione sourcepath del comando integrato shopt è disattivata,
il PATH non è cercato. Se vengono forniti argomenti, diventano
i parametri posizionali quando viene eseguito il nomefile. In caso contrario, i parametri posizionali
rimangono invariati. Lo stato restituito è lo stato
dell'ultimo comando terminato all'interno dello script (0 se non vengono eseguiti comandi
) e false se il nome del file non viene trovato o non può essere letto.
Il fatto che sia una funzione incorporata di bash è il motivo per cui la fonte non viene fornita con la propria pagina man, motivo per cui apropos ha fallito.
Correlati:Convinci apt-get *non* a utilizzare il metodo IPv6?