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