ฉันคิดว่าฉันจะเพิ่มคำอธิบายเพิ่มเติมต่อไปนี้สำหรับความล้มเหลวของการทุบตี - มันยาวเกินไปสำหรับความคิดเห็นและอาจเป็นประโยชน์สำหรับคนที่มีปัญหากับการทุบตีเสร็จสิ้นเนื่องจากสันนิษฐานว่านี่เป็นคำถามทั่วไปของคำถามทั่วไป ซ้ำทั้งหมดจะถูกเรียก
แม้ว่าคุณจะมีบรรทัดที่เหมาะสมในของคุณ.bashrc
(ในขณะที่คำตอบข้างต้น) และbash-completion
แพคเกจติดตั้งเสร็จสิ้นทุบตียังคงสามารถทำงานผิดพลาดถ้าคุณมีอย่างใดอย่างหนึ่งshopt -s nullglob
หรือshopt -s failglob
ในของคุณหรือ.bashrc
.bash_aliases
สถานการณ์ต่อไปนี้ได้รับการทดสอบด้วยการปรับแต่ง.bashrc
และ.bash_aliases
ลบของผู้ใช้ทั้งหมดเพื่อให้การทดสอบที่เป็นธรรมโดยมีบรรทัดเสร็จสิ้นการทุบตีที่เหมาะสมใน.bashrc
ปัจจุบันและbash-completion
ติดตั้ง
1) สถานการณ์แรกคือเมื่อคุณมีshopt -s failglob
ในของคุณหรือ.bashrc
.bash_aliases
เมื่อพยายามแท็บไดเรกทอรีและไฟล์ทั้งหมดตามลำดับข้อผิดพลาดเหล่านี้จะเกิดขึ้น:
cd Dbash: no match: "${COMP_WORDS[@]}"
cat pabash: no match: words[0]=${!ref}${COMP_WORDS[i]}
อย่างไรก็ตามคำสั่งจะยังคงเสร็จสมบูรณ์
2) เมื่อshopt -s nullglob
เปิดใช้งานการพยายามที่จะแท็บไดเรกทอรีให้สมบูรณ์หรือไฟล์จะนำไปสู่ทุกสิ่งที่อยู่ในรายการโดยไม่ต้องทำให้เสร็จ:
cd Do
.adobe/ .gimp-2.6/ Podcasts/
.aptitude/ .gnome2/ Public/
.audacity-data/ .gnome2_private/ .pulse/
............
ฉันตัดรายชื่อสั้น ๆ ที่นี่เนื่องจากใช้เวลานานมากและไม่จำเป็นต้องทำซ้ำทั้งหมด
อีกครั้งความสมบูรณ์ของคำสั่งจะยังคงทำงานอย่างไรก็ตาม
ดังนั้นเพียงแค่ลบshopt -s failglob
หรือshopt -s nullglob
ยังสามารถแก้ปัญหาข้อผิดพลาดด้วยการทุบตีเสร็จสมบูรณ์สมมติว่าคุณมีสายที่เหมาะสมใน.bashrc
และbash-completion
ติดตั้งของคุณ