ขึ้นอยู่กับคำตอบ @ Salutis ของฉันสร้างสคริปต์ซึ่งผมเรียกว่าcomp
และเก็บไว้ใน~/bin/comp
การค้นหาที่commands
' aliases
และbuiltins
(ธงตัวเลือก-cab
ดูรายการคนทุบตี ) มีพารามิเตอร์ที่สองตัวเลือกที่ถ้ามีท่อออกไปgrep
และการค้นหาสำหรับ พารามิเตอร์ที่สอง
Usage: comp string [keyword-for-grep]
รหัส:
#!/bin/bash
if [ -z "$1" ]; then
echo usage: comp string [keyword-for-grep]
echo
exit
fi
if [ -z "$2" ]; then
compgen -cab -- $1
exit
fi
compgen -cab -- $1 | grep -i $2
โดยส่วนตัวแล้วฉันจะสนใจที่จะหาวิธีที่จะลบคำสั่งสุดท้ายจากประวัติเชลล์ในสคริปต์ (สิ่งที่เกี่ยวข้องhistory -d
) เพื่อที่เมื่อค้นหาbash
ประวัติฉันจะไม่พบcomp
รายการ ฉันรู้ว่าฉันสามารถทำสิ่งนี้ได้ด้วยHISTIGNORE
แต่ลินุกซ์นั้นค่อนข้างทรงพลังดังนั้นจึงต้องมีวิธีที่จะทำได้จากไฟล์สคริปต์ด้วยใช่ไหม?
grep
Regex อย่างไร?(y or n or g[rep])
? ฉันเกลียดที่จะพูดในแง่ร้าย แต่ฉันสงสัยว่าสิ่งนี้สามารถทำได้โดยไม่ต้องเพิ่มลงในรหัสทุบตี