เครื่องมือบรรทัดคำสั่งมีรายการเติมข้อความอัตโนมัติของตัวเองได้อย่างไร


24

Bash ใน Ubuntu รู้ได้อย่างไรว่ารายการการกระทำเฉพาะของเครื่องมือ?

ตัวอย่างเช่นถ้าฉันพิมพ์apt-getและแท็บสองครั้งฉันจะเห็นเพียงลบอัปเดตอัปเกรด ... ฯลฯ แต่ไม่ใช่การดำเนินการสำหรับคำสั่งอื่นหรือไฟล์ในไดเรกทอรีปัจจุบัน

ฉันกำลังพัฒนาเครื่องมือบรรทัดคำสั่งใน Go และต้องการให้ฟีเจอร์นี้สำหรับ distros ที่รองรับ


1
ฉันได้ลบ "อูบุนตู" ออกจากชื่อและแท็กของคุณเนื่องจากจะดีกว่าเนื่องจากเป็นคำถามทั่วไปเพิ่มเติม (คำตอบไม่ได้เฉพาะเจาะจงสำหรับ distro ใด ๆ )
goldilocks

1
เป็นคำถามที่ดีฉันมักจะสงสัยในเรื่องนี้ แต่ไม่เคยใช้เวลาในการค้นหา
akatakritos

คำตอบ:


25

มันทำได้โดยใช้คุณสมบัติการทำให้สมบูรณ์ของ bash v4 จบรหัสสำหรับการapt-getให้บริการโดยแพคเกจและตั้งอยู่ที่bash-completion /usr/share/bash-completion/completions/apt-getการประยุกต์ใช้งานที่มีการดำเนินการเสร็จสมบูรณ์และไม่เป็นส่วนหนึ่งของฐานแพคเกจวางสคริปต์เสร็จพวกเขาในbash-completion/etc/bash_completion.d

/etc/bash_completionสำเร็จจะถูกโหลดผ่านการจัดหา ตรงนี้จะทำอะไรจะแตกต่างกันไปขึ้นอยู่กับรุ่น Debian หรือ Ubuntu ว่าในทางกลับกันจะมาทุกอย่างในและ/usr/share/bash-completion/completions/etc/bash_completion.d


ขอบคุณที่อธิบายมัน ดังนั้นการใช้งานไม่เพียง แต่จะแตกต่างจาก Debian ไปยัง Ubuntu แต่ยังมีในการกระจายที่เหมือนกันในแต่ละรุ่น
แก้ไข Rustom

1
@ Amadad มันใช้วิธีเดียวกันกับการแจกแจงทั้งหมด ความแตกต่างเพียงอย่างเดียวคือที่ตั้งของไฟล์และอาจมีการตั้งค่าเริ่มต้นบางอย่าง
Gilles 'หยุดชั่วร้าย'
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.