มีตัวพิมพ์ผิดในการทุบตีหรือไม่?


8

ฉันต้องการให้บางสิ่งบางอย่างเกี่ยวกับข้อผิดพลาด 'คำสั่งไม่พบ' ในการทุบตีและเสนอการแก้ไขที่มีประโยชน์

ตัวอย่างเช่น:

grep-C3  error
bash: grep-C3: command not found

มันจะดีถ้ามันพูดว่า:

Did you mean: grep -C3 error (Y/n)

ฉันเห็นคนรวมตัวพิมพ์ผิดปกติในสคริปต์. bash_profile เช่น 'alias gerp = grep' แต่ฉันคิดว่ามีคนเขียนส่วนขยายทั่วไปลงใน bash เพื่อแก้ไขสิ่งนี้

มีใครเคยได้ยินส่วนขยายดังกล่าวบ้างไหม?


คำตอบ:


4

ฉันไม่ทราบวัตถุประสงค์ทั่วไป แต่มีชื่อไดเรกทอรี:

$ shopt -s cdspell
$ cd /usr/ibn
/usr/bin
$ pwd
/usr/bin
$ cd /usr/shar/doc
/usr/share/doc

นี่คือจาก man page สำหรับ Bash:

หากการค้นหาไม่สำเร็จเชลล์จะค้นหาเชลล์ที่กำหนด 
ฟังก์ชันชื่อ command_not_found_handle หากฟังก์ชั่นนั้นมีอยู่นั่นคือ
เรียกใช้ด้วยคำสั่งเดิมและอาร์กิวเมนต์ของคำสั่งเดิม  
เป็นข้อโต้แย้ง

อาจเป็นไปได้ที่จะใช้สิ่งนี้เพื่อทำสิ่งที่คุณต้องการ แต่รหัสจะค่อนข้างท้าทาย อย่างไรก็ตาม Ubuntu ได้ใช้สิ่งนี้เพื่อแสดงแพ็คเกจที่มีคำสั่งที่ไม่พบพร้อมกับคำแนะนำในการติดตั้ง (apt-get)


2

ดูเหมือนว่าshoptจะเป็นการเริ่มต้นที่ดี

นอกจากนี้ยังปรากฏว่าzshมีการแก้ไขคำผิดในตัว


ลิงก์ไปยัง "shopt" ดูเหมือนหน้าว่างจากที่นี่
sylvainulg

0

command-not-foundแพคเกจควรมีคุณลักษณะนี้ใน distros ล่าสุด

ถ้าไม่คุณสามารถเรียกใช้งานได้ด้วยตนเองจากcommand_not_found_handle()ฟังก์ชั่น

อีกหนึ่งทางเลือกนี้

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