ขึ้นอยู่กับคำตอบ @ 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แต่ลินุกซ์นั้นค่อนข้างทรงพลังดังนั้นจึงต้องมีวิธีที่จะทำได้จากไฟล์สคริปต์ด้วยใช่ไหม?
grepRegex อย่างไร?(y or n or g[rep])? ฉันเกลียดที่จะพูดในแง่ร้าย แต่ฉันสงสัยว่าสิ่งนี้สามารถทำได้โดยไม่ต้องเพิ่มลงในรหัสทุบตี