E come si completano automaticamente anche gli alias?
E come si completano automaticamente anche gli alias?
Risposte:
A seconda del comando:
/etc/bash_completion.d/*
(o una posizione diversa su alcuni sistemi). Queste funzioni sono registrate con il built-in (es. Dice a bash di chiamare la funzione quando si preme un comando). Usano il built-in per dire a bash "ecco i possibili completamenti".complete
complete -F _find find
_find
Tabfind
compgen
--help
e analizzerà l'output. Tali comandi possono essere registrati complete
nell'integrato, ad es complete -F _longopt ls
. _longopt
è in effetti una funzione di generazione del completamento, che capita di analizzare l'output di un comando anziché utilizzare un elenco fisso. (Esistono altre funzioni di completamento più specializzate che analizzano l'output di un comando per generare possibili completamenti; cercare /etc/bash_completion.d/*
esempi.)complete
built-in ha opzioni per questo, ad esempio -A
per gli alias.Il supporto per il completamento bash è fornito in Debian e Ubuntu dal pacchetto di completamento bash . Di solito è anche necessario decommentare quanto segue in /etc/bash.bashrc
e / o .bashrc
generare i file di completamento bash. Quanto segue proviene da /etc/bash.bashrc
:
# enable bash completion in interactive shells
if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
. /etc/bash_completion
fi
perché questo funzioni. Di solito la vedo in entrambi. La gestione delle shell interattive / di login in Debian è un po 'un casino.
Commenti simili presumibilmente si applicano ad altre distribuzioni, sebbene forse abilitino l'approvvigionamento di default.