Я пытался использовать time
команда с -f
опция отформатировать вывод времени, но я получаю следующую ошибку:
-f: command not found
Затем я пытался использовать другие опции -a
, -o
, и т.д. и я получаю ту же ошибку. Даже time --version
не работает (--version: command not found
).
Не говорите мне читать человека, потому что я уже делаю это много раз... Все эти опции указаны там. Так, где могла быть проблема?
Что ж, даже если вам это не нравится, я заставит вас прочитать еще раз с большим вниманием человеко-время
. В конце раздела EXAMPLES
вы найдете:
Users of the bash shell need to use an explicit path in order to run
the external time command and not the shell builtin variant. On system
where time is installed in /usr/bin, the first example would become
/usr/bin/time wc /etc/hosts
Итак, я предполагаю, что вы используете оболочку bash, которая использует внутреннюю версию time
, предоставленную как ключевое слово оболочки. Вы можете проверить это с помощью следующей команды:
type time
, и результат, вероятно, будет:
time is a shell keyword
Если это так, то ясно, чтобы использовать команду реального времени
, вы должны для использования его явного пути: / usr / bin / time
.
Кроме того, если вы больше не хотите использовать ключевое слово оболочки time
, вы можете создать постоянный псевдоним следующим образом:
alias time='/usr/bin/time'
Это перезапишет ключевое слово оболочки time
, потому что команда:
type time
теперь даст следующий результат:
time is aliased to `/usr/bin/time'
Поскольку, как объясняют другие ответы, time
является ключевым словом оболочки, единственный доступный вам вариант - -p
:
terdon@oregano ~ $ help time
time: time [-p] pipeline
Report time consumed by pipeline's execution.
Execute PIPELINE and print a summary of the real time, user CPU time,
and system CPU time spent executing PIPELINE when it terminates.
Options:
-p print the timing summary in the portable Posix format
Итак, вам нужно запустить время
, которое находится в / usr / bin
. Вот несколько способов сделать это:
Используйте вместо этого исполняемый файл time
:
/ usr / bin / time -f% Uuser ls> / dev / null
Используйте \
, что заставляет вашу оболочку игнорировать псевдонимы и ключевые слова и вместо этого искать соответствующий исполняемый файл в $ PATH
:
\ time -f% Uuser ls> / dev /ноль
Используйте встроенную команду
, которая имеет аналогичный эффект:
время команды -f% Uuser ls> / dev / null
Используйте другую оболочку, в которой нет такого ключевого слова. Например, sh
(на самом деле это тире
в Ubuntu):
sh -c "time -f% Uuser ls> / dev / null"
Используйте , который
, который будет искать по вашему $ PATH
(хорошо, это глупо):
$ (в этот раз) -f% Uuser ls> / dev /ноль
bash
и zsh
оболочки имеют свою внутреннюю команду время
. Вы должны использовать
/usr/bin/time -f ...
Кстати, я обнаружил, что с помощью (из zsh
):
~% which time
time: shell reserved word