แก้ไข
TL; DR : สร้างทางลัดในการเติมข้อความอัตโนมัติ  และฟังก์ชั่นใน.inputrc .bashrcเรียกใช้คำสั่งตามปกติพิมพ์ แต่ENTERกดปุ่มทางลัดที่คุณระบุ.inputrc
บุคคลที่ให้รางวัลกับคำถามนี้กล่าวว่า:
  "คำตอบที่มีอยู่ทั้งหมดต้องพิมพ์คำสั่งเพิ่มเติมหลังจากคำสั่งฉันต้องการคำตอบที่ทำได้โดยอัตโนมัติ"
ในขณะที่ค้นคว้าวิธีแก้ปัญหานี้ฉันได้พบคำถามนี้จาก stackexchange ซึ่งอนุญาตให้เชื่อมโยงCtrlJกับลำดับของคำสั่ง: Ctrla(ย้ายไปที่จุดเริ่มต้นของบรรทัด) วางสตริง "mesure" ที่ด้านหน้าของคำสั่งที่คุณป้อนCtrlm(ดำเนินการ)
ดังนั้นคุณจะได้รับฟังก์ชั่นการเติมข้อมูลอัตโนมัติและENTERคำสั่งแยกต่างหากสำหรับการวัดเวลาในขณะที่ยังคงวัตถุประสงค์เดิมของฟังก์ชั่นที่สองที่ฉันโพสต์ร้องไว้
ณ ตอนนี้นี่คือเนื้อหาของ~/.inputrcไฟล์ของฉัน:
"\C-j": "\C-a measure \C-m"
และนี่คือเนื้อหาของ.bashrc(หมายเหตุฉันไม่ได้ใช้ทุบตีในตลอดกาล - ฉันใช้ mksh เป็นเปลือกของฉันดังนั้นนั่นคือสิ่งที่คุณเห็นในโพสต์ต้นฉบับฟังก์ชั่นยังคงเหมือนเดิม)
PS1=' serg@ubuntu [$(pwd)]
================================
$ '
function measure () 
{
/usr/bin/time --output="/home/xieerqi/.timefile" -f "%e" $@ 
if [ $( cat ~/.timefile| cut -d'.' -f1 ) -gt 15 ]; then
    notify-send "Hi , $@ is done !"
fi
}
โพสต์ต้นฉบับ
นี่คือความคิดของฉัน - .bashrcใช้ฟังก์ชั่นใน หลักการพื้นฐาน - ใช้/usr/bin/timeเพื่อวัดเวลาที่ใช้ในการดำเนินการให้เสร็จสมบูรณ์และหากเกิน 15 วินาทีให้ส่งการแจ้งเตือน
function measure () 
{
if [ $( /usr/bin/time -f "%e" $@ 2>&1 >/dev/null ) -gt 15 ]; then
    notify-send "Hi , $@ is done !"
fi
}
ที่นี่ฉันกำลังเปลี่ยนเส้นทางไปที่/dev/nullแต่เพื่อดูผลลัพธ์สามารถเปลี่ยนเส้นทางไปยังไฟล์ได้
วิธีที่ดีกว่ามากคือ IMHO คือส่งเวลาไปยังไฟล์บางไฟล์ในโฟลเดอร์บ้านของคุณ (เพื่อให้คุณไม่ทำให้ระบบของคุณสกปรกด้วยไฟล์ไทม์ไฟล์และรู้ว่าจะมองที่ไหน) นี่คือรุ่นที่สอง
function measure () 
{
/usr/bin/time --output=~/.timefile -f "%e" $@ 
if [ $( cat ~/.timefile | cut -d'.' -f1 ) -gt 15 ]; then
    notify-send "Hi , $@ is done !"
fi
}
และนี่คือภาพหน้าจอของรุ่นที่หนึ่งและสองตามลำดับ
รุ่นแรกไม่มีเอาต์พุต

เวอร์ชันที่สองพร้อมเอาต์พุต
