โดยทั่วไปจะมีการใช้งานใน yanking ก่อนหน้า (คำสั่ง) ข้อโต้แย้ง
ตัวอย่างเช่นหากใช้คำสั่งต่อไปนี้:
echo Hello, world how are you today?
จากนั้นHello,
จะเป็นข้อโต้แย้งแรกและtoday?
ข้อที่หกนั่นคือข้อโต้แย้งสุดท้าย ความหมายสามารถอ้างอิงได้โดยการพิมพ์:
Alt+6 ติดตามโดย Ctrl-Alt-6
Ctrlจะแสดงเป็นตัวละครแบบดั้งเดิมหมวก^
ใช้ได้กับชื่อคีย์และAltเป็นM-
ที่เป็นM etaคำนำหน้า
ดังนั้นทางลัดด้านบนสามารถนิยามได้ว่า^My
เป็นการงัด
นอกจากนี้ยังมีทางลัดการแทนที่หมวกในบรรทัดคำสั่ง:
echo Hello, world!
^Hello^Bye
Bye, world!
เพื่อแทนที่สตริงที่จับคู่แรกของคำสั่งก่อนหน้าความหมาย:
Hello, world! Hello, people!
^Hello^Bye
จะส่งผลให้:
Bye, world! Hello, people!
ออกจากการแข่งขันนัดที่สอง ( hello
) ไม่เปลี่ยนแปลง
หมายเหตุ: อย่าเว้นช่องว่างระหว่างหมวกมิฉะนั้นการทำงานจะไม่ทำงาน
ด้านบนเป็นเพียงทางลัดสำหรับ:
!:s/Hello/Bye
การทดแทนระดับเหตุการณ์ (*) สำหรับสตริงที่พบ (จับคู่) ครั้งแรกในคำสั่งก่อนหน้าในขณะที่คำนำหน้าส่วนแรกด้วยg
สวิตช์จะนำไปใช้กับทั้งบรรทัด g lobally :
echo Hello, world! Hello, people!
!:gs/Hello/Bye
Bye, world! Bye, people!
เป็นมักจะถูกดำเนินการในคำสั่งอื่น ๆ ที่เกี่ยวข้องเช่นsed
, vi
และในregex
(regular expression) - เป็นวิธีมาตรฐานในการค้นหา ( สตริงการแข่งขัน )
ไม่คุณไม่สามารถทำได้!:sg/Hello/Bye
หรือ!:s/Hello/Bye/g
นี่คือไวยากรณ์ !
- ! สำหรับเหตุการณ์; เหตุการณ์อาจถูกเข้าใจว่าเป็นเอาต์พุตคำสั่งหรือการดำเนินการที่ทำในประวัติคำสั่ง
นั่นคือสิ่งที่ฉันเข้าใจโดยใช้มันเองและลองทำสิ่งต่าง ๆ ด้วยตัวเองจากสิ่งที่ฉันอ่านจากแหล่งต่าง ๆ รวมถึงหน้าคู่มือบล็อกและฟอรัม
หวังว่ามันจะส่องแสงออกไปในรูปแบบลึกลับของbash
เชลล์ Bourne-Again (เล่นบนsh
เชลล์ซึ่งตัวเองเรียกว่าบอร์นเชลล์หลังจากนามสกุลของนักประดิษฐ์) สิ่งที่เป็นเชลล์เริ่มต้นในการกระจายจำนวนมากรวมถึงเซิร์ฟเวอร์ ( เซิร์ฟเวอร์ OS )
bind -lp
และดูการผูกปัจจุบัน