Komut satırı araçlarının kendi otomatik tamamlama listeleri nasıl var?


24

Ubuntu'daki Bash, bir aracın belirli bir eylem listesini nasıl biliyor?

Örneğin, apt-get ve tab komutunu iki kez yazarsam, sadece kaldır, güncelleme, yükseltme ... vb. Görürüm, başka bir komutun eylemlerini veya geçerli dizindeki dosyaları göremiyorum.

Go'da bir komut satırı aracı geliştiriyorum ve onu destekleyen dağıtımlar için bu özelliği sağlamak istiyorum.


1
"Ubuntu" u başlıktan ve etiketlerden kaldırdım, çünkü bu daha genel bir soru olarak daha iyi (cevap herhangi bir dağıtıma özgü değil).
goldilocks

1
Harika bir soru, bunu sık sık merak ederdim, ama bakmak için zaman harcadım.
akatakritos

Yanıtlar:


25

Bunu bash v4'ün tamamlanma özelliklerini kullanarak yapıyor. Tamamlama kodu paket apt-gettarafından verilir bash-completionve adresinde bulunur /usr/share/bash-completion/completions/apt-get. Tamamlanan ve temel bash-completionpaketin bir parçası olmayan uygulamalar, tamamlama komut dosyalarını içine yerleştirir /etc/bash_completion.d.

Tamamlamalar kaynak yoluyla yüklenir /etc/bash_completion. Tam olarak nerede yapıldığı, Debian veya Ubuntu versiyonlarına bağlı olarak değişecektir. Bu da sırayla /usr/share/bash-completion/completionsve içindeki her şeyi sağlayacak /etc/bash_completion.d.


Teşekkürler, bu onu açıklar. Yani uygulama sadece Debian'dan Ubuntu'ya değil, aynı dağıtımın her versiyonunda da değişiyor.
Değişken Rustom

1
@Amgad Tüm dağıtımlarda aynı şekilde çalışır. Tek fark, dosyaların bulunduğu yer ve belki de bazı varsayılan ayarlar.
Gilles 'SO- kötülük' dur
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.