2012-03-15 35 views
12

Tôi muốn sử dụng thời gian gnu để đo thời gian chạy của một số chương trình .c nhỏ. Trong con người nó được viết rằng:Gnu thời gian và định dạng đầu ra

-f FORMAT, --format FORMAT 
Use FORMAT as the format string that controls the output of time. See the below more information. 

Sau đó, trong ví dụ chúng ta có:

To run the command `ls -Fs' and show just the user, system, and total time: 
time -f "%E real,%U user,%S sys" ls -Fs 

Nhưng khi tôi cố gắng để thực hiện lệnh này từ ví dụ tôi nhận được:

time -f '%E real,%U user,%S sys' ls -Fs 
-f: command not found 

real 0m0.134s 
user 0m0.084s 
sys  0m0.044s 

Tôi tự hỏi đâu là vấn đề, tôi đang phạm sai lầm ở đâu? Tôi chỉ muốn hiển thị thời gian người dùng, đó là lý do tại sao tôi đang đùa giỡn với định dạng đầu ra thời gian.

Trả lời

12

Bash đối với một trình bao gồm shell có tên là time. Một cách để vượt qua nó là nhập /usr/bin/time. Một cách khác là alias time=/usr/bin/time. Mặt khác, bash được xây dựng tôn trọng biến môi trường TIMEFORMAT.

+0

Cảm ơn câu trả lời nhanh, tôi sẽ chỉ sử dụng TIMEFORMAT, nhưng tất cả những công việc đó. – Andna

+1

'/ usr/bin/time' không khả dụng trên một số hệ thống (ví dụ: NixOS), nhưng tôi thấy rằng' thời gian lệnh ... 'hoạt động như một cách để tránh nội trang bash. – Warbo

+0

Điểm tuyệt vời, 'lệnh' là một tiện ích shell được định nghĩa POSIX do đó nó phải có sẵn trong' sh' và trong bất kỳ thứ gì (bao gồm 'bash' và' ksh') có thể hoạt động như 'sh'. Như đã đề cập ở đây: https://stackoverflow.com/questions/6365795/invoking-program-when-a-bash-function-has-the-same-name – minopret

Các vấn đề liên quan