Jawaban:
Coba saja time
bukan 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.
Dengan menggunakan executable time
alih-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.
/usr/bin
ada di PATH mereka?
time
utilitas bawaan shell akan digunakan.
command time
atau \time
mengeksekusi utilitas bukan built-in.
@ 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