Почему "время" в Ubuntu не соответствует стандартному формату POSIX и как его изменить?

Если вы измеряете время в Ubuntu 18.04, результат отображается в одной строке:

$ time sleep 1
sleep 1  0.00s user 0.00s system 0% cpu 1.003 total

Это не соответствует стандарту POSIX, как описано в timeСтраница человека:

-p, --portability
       Use the following format string, for conformance with POSIX standard 1003.2:
                 real %e
                 user %U
                 sys %S

Теперь мой вопрос:

Почему Ubuntu использует свой собственный формат для отображения использования ресурсов?

Кроме того, как я могу изменить поведение? С использованием -p вариант из руководства, которое я цитировал выше, я получаю только следующую ошибку:

$ time -p sleep 1           
zsh: command not found: -p
-p sleep 1  0.00s user 0.00s system 73% cpu 0.002 total

1 ответ

Решение

Ваша ошибка - огромная подсказка -

zsh: команда не найдена: -p

Вы используете Zsh, а не BASH или DASH.

Страница man для time относится к внешней программе /usr/bin/time: bash, так же как и zsh, предоставляет собственную встроенную оболочку времени (которая имеет эквивалентный ключ -p)

корректирующий комментарий @steeldriver

Я получаю другой результат на моей стандартной Ubuntu, используя bash по умолчанию - или то, что вы, без сомнения, хотите / ожидаете.

guiverc@d960-ubu2:~$  time -p sleep 1
real 1.09
user 0.00
sys 0.00
Другие вопросы по тегам