time
поскольку ключевое слово GNU Bash имеет очень конкретное место, где принимается, см., например, синтаксис для конструкции конвейера команд:
Формат для конвейера - [time [-p]] [!] command1 [| command2 ...]
Это жестко закодирует позицию ключевого слова вне расширений (так как команда N будет там, где раскрываются параметры и переменные). Фактически, семантика применяется ко всему конвейеру, а не к команде, поэтому, вероятно, именно поэтому это должно быть ключевое слово.
Существует оболочка встроенный times
(в POSIX специального встроенный), для этого расширение работает с первым слова может быть исполняемым файлом или оболочка встроенным.
В качестве альтернативы GNU coreutils содержит исполняемый файл /bin/time
.
Фактически time
является зарезервированным словом в POSIX Shell (хотя bash все равно распознает его в режиме posix (если только -
следует по неочевидным причинам)).
Внутри выражения eval
ключевые слова распознаются bash, поэтому их можно использовать для динамического улучшения команд с профилированием времени. (Однако, с другой стороны, это требует дополнительного раунда цитирования)