Dalam ksh, bashdan zsh, timebukan perintah (builtin atau tidak), itu kata reserved dalam bahasa seperti foratau while.
Ini digunakan untuk mengatur waktu pipa 1 .
Di:
time for i in 1 2; do cmd1 "$i"; done | cmd2 > redir
Anda memiliki sintaks khusus yang memberi tahu shell untuk menjalankan saluran pipa itu:
for i in 1 2; do cmd1 "$i"; done | cmd2 > redir
Dan melaporkan statistik waktu untuk itu.
Di:
time cmd > output 2> error
Ini sama, Anda waktu yang cmd > output 2> errorperintah, dan statistik waktu masih terus stderr shell.
Anda membutuhkan:
{ time cmd > output 2> error; } 2> timing-output
Atau:
exec 3>&2 2> timing-output
time cmd > output 2> error 3>&-
exec 2>&3 3>&-
Untuk stderr shell yang akan diarahkan ke timing-outputsebelum waktu membangun (sekali lagi, bukan perintah ) digunakan (di sini ke waktu cmd > output 2> error 3>&-).
Anda juga dapat menjalankan timekonstruk tersebut dalam subkulit yang stderrnya dialihkan:
(time cmd > output 2> error) 2> timing-output
Tapi subkulit itu tidak diperlukan di sini, Anda hanya perlu stderr untuk diarahkan pada saat timekonstruksi dipanggil.
Sebagian besar sistem juga memiliki timeperintah. Anda dapat memanggil yang itu dengan menonaktifkan timekata kunci. Yang perlu Anda lakukan adalah mengutip kata kunci itu, entah bagaimana, sebagai kata kunci, hanya dikenali saat harfiah.
'time' cmd > output 2> error-and-timing-output
Namun berhati-hatilah formatnya mungkin berbeda dan stderr keduanya timedan cmdakan digabung menjadi error-and-timing-output.
Juga, timeperintah, sebagai lawan timekonstruk tidak dapat mengatur waktu pipa atau perintah majemuk atau fungsi atau builtin shell ...
Jika itu adalah perintah builtin, itu mungkin bisa mengatur waktu fungsi atau builtin, tetapi tidak bisa mengatur waktu pengalihan atau jalur pipa atau perintah majemuk.
1 Catatan yang bashmemiliki (apa yang dapat dianggap sebagai) bug di mana time (cmd) 2> file(tetapi tidak time cmd | (cmd2) 2> filemisalnya) mengarahkan kembali output waktu kefile
timekata kunci shell, atau/usr/bin/time. Mungkin ada beberapa set deskriptor yang terlibat di sini (shell, dan yang dilampirkan pada suatutimeproses). Dan jangan lupa tentang yang tersirat dalam()subkulit. ( menunggu spesialis bash : p)