ในtcsh
นั้นมีตัวแปรtime
:
The time shell variable can be set to execute the time builtin command
after the completion of any process that takes more than a given number
of CPU seconds.
ฉันจะทำสิ่งนี้ได้bash
อย่างไร
ในtcsh
นั้นมีตัวแปรtime
:
The time shell variable can be set to execute the time builtin command
after the completion of any process that takes more than a given number
of CPU seconds.
ฉันจะทำสิ่งนี้ได้bash
อย่างไร
คำตอบ:
ฉันไม่คิดว่าคุณจะสามารถบรรลุผลเดียวกันได้โดยไม่ต้องแก้ไข bash source แต่คุณสามารถเข้าใกล้ได้โดยหวังว่าจะใกล้พอสำหรับคุณ
คุณสามารถรวมคำสั่งแฮ็กคำสั่งแฮ็ชของ bashและSECONDS
ตัวแปรเพื่อแสดงเวลานาฬิกาแขวนในลักษณะที่ไม่ล่วงล้ำ นี่คือใช้งานง่ายเนื่องจากวิลล์ Laurikari ฟังก์ชั่นtimer_start
และtimer_stop
จะดำเนินการทันทีก่อนที่จะเริ่มคำสั่งและทันทีก่อนที่จะแสดงพรอมต์ต่อไป
function timer_start {
timer=${timer:-$SECONDS}
}
function timer_stop {
timer_show=$(($SECONDS - $timer))
unset timer
}
trap 'timer_start' DEBUG
PROMPT_COMMAND=timer_stop
PS1='[last: ${timer_show}s][\w]$ '
หากต้องการรับtime
ข้อมูลทั้งหมดสำหรับทุกคำสั่งต่อไปนี้เป็นวิธีเนื่องจากDennis Williamson :
bind '"\C-j": "\C-atime {\C-e;}\C-m"'
เมื่อคุณกดCtrl+ Jแทนที่จะEnterเริ่มคำสั่งคุณจะได้รับข้อมูลเวลา ไม่แนะนำให้Rebinding Enter(เช่นCtrl+ M) เนื่องจากบางครั้งคำสั่งที่แก้ไขจะไม่ถูกต้องทางวากยสัมพันธ์
ดูเวลาของคำสั่งวอลล์สุดท้ายสามารถใส่ใน Bash prompt ได้อย่างไร และกำหนดเวลาโดยอัตโนมัติทุกคำสั่งดำเนินการและแสดงในพรอมต์ Bash? บนStack Overflowสำหรับวิธีอื่น ๆ (โปรดทราบว่าส่วนใหญ่ให้เวลาจริงผ่านไปเท่านั้นไม่ใช่เวลา CPU)