ไม่มีใครรู้วิธีการใส่คำสั่ง 'เวลา' ก่อนทุกคำสั่งในเซสชั่นทุบตี?
ไม่มีใครรู้วิธีการใส่คำสั่ง 'เวลา' ก่อนทุกคำสั่งในเซสชั่นทุบตี?
คำตอบ:
ขออภัยสำหรับคำตอบที่ผิดก่อนฉันคิดถึงคำถามของคุณ
หากต้องการเพิ่มเวลาก่อนทุกคำสั่งที่คุณเรียกใช้บนเชลล์คุณสามารถทำสิ่งนี้ได้
bind 'RETURN: "\e[1~time \e[4~\n"'
สิ่งนี้จะเชื่อมโยงคีย์ส่งคืน ตอนนี้ทุกครั้งที่คุณกด return แทนที่จะเขียนขึ้นบรรทัดใหม่ \ n มันจะไปที่จุดเริ่มต้นของบรรทัดป้อนข้อความ 'เวลา' และเว้นวรรคไปที่จุดสิ้นสุดของบรรทัดแล้วป้อนบรรทัดใหม่ \ n เพื่อให้ได้ผลลัพธ์ที่ต้องการ ผล
หากคุณไม่ต้องการเสียสละคีย์ของคุณคุณสามารถสร้างคีย์มาตรฐาน 'ที่สอง' ป้อนเช่น F12 โดยผูกคำสั่งเช่นนี้
bind '"\e[24~": "\e[1~time \e[4~\n"'
ตอนนี้แทนที่จะแทนที่ปุ่มส่งคืนที่คุณผูกไว้กับ F12
พื้นหลังทั้งหมดนี้คือ bash ที่ใช้ GNU readline เพื่ออ่านคำสั่ง ดังนั้น readline จะเป็นจุดเริ่มต้นที่ดีสำหรับการจัดการคำสั่งเพิ่มเติมเป็นต้น
ฉันรู้ว่านี่อยู่นอกขอบเขตของคำถามนี้ แต่ ...
ในzsh
(ซึ่งเป็นความรู้ของฉันชุดสุดทุบตี) ถ้าคุณตั้งค่าตัวแปรต่อไปนี้ใน.zshrc
ไฟล์ของคุณ:
export REPORTTIME=5
ทุกคำสั่งที่ใช้เวลานานกว่า 5 วินาที (ผมค่อนข้างมั่นใจว่า) time
จะแสดงผลลัพธ์ของ คำสั่งทั้งหมดที่ดำเนินการเสร็จสมบูรณ์เร็วขึ้นไม่ และในกรณีเหล่านี้ไม่มีใครสนใจดังนั้นจึงเป็นเรื่องดีที่จะไม่เกะกะอะไรขึ้น นอกจากนี้ยังมีคุณสมบัติเจ๋ง ๆ มากมายzsh
ที่คุณอาจสนุกไปกับมัน
รวม \ t ในสตริงข้อความแจ้งของคุณ มันจะรวมเวลาในการแจ้งของคุณ ณ จุดที่คุณรวมไว้ ดู: http://www.ibm.com/developerworks/linux/library/l-tip-prompt/
PS1ดูเหมือนเป็นวิธีมาตรฐานในการทำสิ่งนี้
time
ทำ (วัดระยะเวลาที่ใช้ในการรันคำสั่ง)