Bagaimana cara mengatur waktu perintah tertentu?

67

(Setara linux dengan TimeThis.exe)

Sesuatu seperti:

timethis wget foo.com
Receiving foo.com  
...

wget foo.com took 3 seconds.
ripper234
sumber

Jawaban:

94

Coba saja timebukan timethis.

Meskipun perlu diketahui bahwa sering kali versi shell builtin dari waktu dan versi biner, yang akan memberikan hasil dalam format yang berbeda:

$ time wget -q -O /dev/null https://unix.stackexchange.com/

real    0m0.178s
user    0m0.003s
sys     0m0.005s

vs.

$ \time wget -q -O /dev/null https://unix.stackexchange.com/
0.00user 0.00system 0:00.17elapsed 4%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (0major+613minor)pagefaults 0swaps

Tidak seperti program "timethis" Anda, Anda mendapatkan tiga nilai kembali. Itu dipecah dalam Apa itu "waktu sistem" ketika menggunakan "waktu" di baris perintah , tetapi singkatnya: nyata berarti "waktu jam dinding", sementara pengguna dan sistem menunjukkan waktu jam CPU, dibagi antara kode biasa dan panggilan sistem.

mattdm
sumber
26

Dengan menggunakan executable timealih-alih shell builtin, Anda dapat menentukan format dan nilai output. Misalnya, dapatkan waktu berlalu yang sebenarnya bersama dengan nama perintah dan parameter

/usr/bin/time --format='%C took %e seconds' sleep 3
sleep 3 took 3.00 seconds

Perhatikan bahwa Anda harus menentukan lintasan untuk time, kalau tidak Anda akan menggunakan shell bawaan.

forcefsck
sumber
4
perhatikan bahwa: jalan itu penting. Jangan hanya menggunakan 'waktu' dalam bash. Sebagai gantinya, gunakan / usr / bin / time
CodeFarmer
1
apa bedanya jika /usr/binada di PATH mereka?
Galois
@ Galois Perbedaannya adalah bahwa tanpa jalur eksplisit, timeutilitas bawaan shell akan digunakan.
Kusalananda
Bisa juga menggunakan command timeatau \timemengeksekusi utilitas bukan built-in.
forcefsck
0

@ galois: Berbagai shell memiliki beberapa perintah "built-in" yang lebih diutamakan daripada apa pun di jalan. Biasanya ini menguntungkan; built-in akan cenderung berjalan lebih cepat (karena tidak memanggil file eksternal) dan biasanya memberikan hasil yang diinginkan (yaitu, dalam hal perintah waktu Anda biasanya tidak peduli versi mana yang Anda gunakan, kecuali jika Anda ingin menggunakan " --format "flag).

Jadi "waktu" tanpa karakter khusus (seperti /) untuk membuatnya terlihat seperti jalan akan berakhir dengan built-in, terlepas dari apa yang terlihat seperti PATH Anda.

Untuk memaksa shell menggunakan perintah waktu eksternal, Anda harus menyediakan path

Tom Payerle
sumber