Ayrıca takma takma adları otomatik olarak nasıl tamamlar?
Ayrıca takma takma adları otomatik olarak nasıl tamamlar?
Yanıtlar:
Komuta bağlı olarak:
/etc/bash_completion.d/*
(veya bazı sistemlerde farklı bir konum) bulacaksınız . Bu işlevler yerleşik olarak kaydedilir (örneğin , bir komuta bastığınızda işlevi çağırmasını bash söyler ). Bash “burada olası tamamlamalar vardır” derken söylemek için yerleşik kullanırlar .complete
complete -F _find find
_find
Tabfind
compgen
--help
ve çıktıyı ayrıştırır. Bu tür komutlar complete
, örneğin complete -F _longopt ls
; _longopt
Aslında, bir komut oluşturma işlevidir, bu da bir komutun çıktısını sabit bir liste kullanmak yerine ayrıştırmaktır. (Olası tamamlamaları üretmek için bir komutun çıktısını çözümleyen daha özel tamamlama işlevleri vardır; /etc/bash_completion.d/*
örneklere bakın.)complete
Yerleşik bunun için seçenekleri, örneğin sahiptir -A
adlar için.Bash tamamlama desteği, bash tamamlama paketi tarafından Debian ve Ubuntu'da sağlanır . Ayrıca , bash tamamlama dosyalarını kaynaklamak için aşağıdakileri /etc/bash.bashrc
ve / veya içindeki açıklamalardan da haberdar olmanız gerekir .bashrc
. Aşağıdakilerden /etc/bash.bashrc
:
# enable bash completion in interactive shells
if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
. /etc/bash_completion
fi
Bunun çalışması için. Genelde ikisini de rahatsız ediyorum. Debian'da etkileşimli / oturum açma kabukları ile uğraşmak biraz karışıklık yaratıyor.
Benzer yorumlar muhtemelen diğer dağıtımlar için de geçerlidir, ancak kaynak kullanımı varsayılan olarak mümkün olabilir.