Làm thế nào tôi có thể theo dõi thời gian từ dòng lệnh?


11

Tôi đang tìm kiếm một lệnh để theo dõi thời gian.

Tôi tưởng tượng quy trình làm việc sau đây:

  1. Chạy lệnh
  2. ...làm việc gì khác...
  3. Quay trở lại cửa sổ terminal và dừng lệnh
  4. Là một đầu ra, bạn nhận được thời gian trôi qua từ 3 đến 1

@JacobVlijm Tôi thực sự thích sự rõ ràng trong câu trả lời của Anwar bên dưới. Là một người dùng không có kỹ thuật, việc hiểu các câu trả lời trong chuỗi trùng lặp có thể dễ dàng hơn. Bạn nghĩ sao?
orschiro

2
@JacobVlijm Tôi không nghĩ đây là bản sao. OP ở đây đang yêu cầu một chiếc đồng hồ bấm giờ, câu hỏi đặt ra là làm thế nào để đo thời gian thực hiện quy trình.
Seth

@Seth ok, bỏ phiếu rút lại.
Jacob Vlijm

@Eric bạn đã đọc bình luận của tôi ở trên?
Seth

Câu trả lời:



6

Làm thế nào về:

stopwatch() { 
    local start=$SECONDS
    read -p "Hit Enter..."
    echo $((SECONDS-start)) seconds elapsed
}

Trong hành động:

$ stopwatch 
Hit Enter...
14 seconds elapsed

3

Cách làm đơn giản là dành thời gian bắt đầu và một khi bạn dừng tập lệnh - hãy dừng thời gian. Cuối cùng, in chênh lệch thời gian. Điều này có thể dễ dàng thực hiện với Python:

python -c $'import time;start=time.time();\ntry:\n\twhile True: time.sleep(0.25)\nexcept: print(time.time()-start)'

Hoặc phiên bản dài để dễ đọc:

import time
start=time.time();
try:
    while True: time.sleep(0.25)
except: 
    print(time.time()-start)

Dừng lại được thực hiện với Ctrl + C


1
while True: passchạy CPU ở mức 100%. Tôi muốn đề xuất while True: time.sleep(1e9)thay thế ( signal.pause()hoạt động quá nhưng yêu cầu nhập thêm).
2012rcampion

@ 2012rcampion điểm tốt, đã chỉnh sửa trong đó rồi.
Sergiy Kolodyazhnyy

1
Nó thường được coi là thực hành xấu để bắt tất cả các ngoại lệ (mặc dù trong trường hợp này có lẽ nó không quá liên quan), except KeyboardInterruptsẽ tốt hơn
Tobias Kienzler

3
@TobiasKienzler Tôi biết điều đó. Nếu đây là một dự án lớn, tôi sẽ chia nhỏ để nắm bắt nhiều ngoại lệ. Hãy nhìn vào mã, chỉ số khác của tôi và như vậy. Nhưng trong trường hợp này chỉ có một, vì vậy nó không liên quan chính xác. Thêm vào đó, đây là một cách nhanh chóng và bẩn thỉu. Tại sao nit golf nó hơi?
Sergiy Kolodyazhnyy

Tôi hoàn toàn đồng ý, chỉ nghĩ rằng nó đáng được đề cập;)
Tobias Kienzler
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.