Я недавно установил бета-версию разработчика macOS 10.15 Catalina, которая по умолчанию ZSH вместо BASH.
У меня time
установлен как двоичный файл в /usr/bin/time
, и я использую это для определения времени некоторых моих сценариев. ZSH, однако, имеет это как встроенную команду. Моя проблема в том, что я обычно использую time -p
для форматирования выходных данных так, как я предпочитаю, но это не представляется возможным в ZSH.
Согласно man time
:
-p The output is formatted as specified by IEEE Std 1003.2-1992 (``POSIX.2'').
Это не относится к встроенному ZSH, и ZSH, похоже, не использует мой установленный time
бинарный файл:
BASH
bash-5.0$ which time
/usr/bin/time
bash-5.0$ time echo hello; echo $?
hello
real 0m0.000s
user 0m0.000s
sys 0m0.000s
0
bash-5.0$ time -p echo hello; echo $?
hello
real 0.00
user 0.00
sys 0.00
0
ЗШ
is-mbp-bleggiero% which time
time: shell reserved word
is-mbp-bleggiero% time echo hello; echo $?
hello
0
is-mbp-bleggiero% time -p echo hello; echo $?
zsh: command not found: -p
-p echo hello 0.00s user 0.00s system 74% cpu 0.001 total
127
И это выглядит странно для меня; кажется, что он включает в себя информацию, которую я хочу (пользователь против системы и итого, отформатирован в секундах), но он также не запускает команду, вместо этого жалуется, что ее не существует.