0.00user 0.00system 0:01.00elapsed 0%CPU (0avgtext+0avgdata 2176maxresident)k
0inputs+0outputs (0major+179minor)pagefaults 0swaps
... - это вывод по умолчанию, генерируемый GNU-версией внешней time
команды .
real 0m1.003s
user 0m0.000s
sys 0m0.000s
... - это вывод по умолчанию, создаваемый встроенной bash
time
. Данная встроенная версия time
является расширением bash
: POSIX-совместимая оболочка не требуется для предоставления встроенной версии time
.
Однако POSIX действительно указывает внешнюю утилиту time
, которая может использовать опцию -p
для создания еще одного выходного формата:
real 1.01
user 0.00
sys 0.00
... и встроенный bash
также принимает опцию -p
для создания того же формата вывода.
Встроенный bash
должен прекрасно работать в скрипте оболочки , если скрипт действительно запускается bash
:
$ cat time.sh
#!/bin/bash
time sleep 1
$ ./time.sh
real 0m1.001s
user 0m0.000s
sys 0m0.000s
$
Похоже, ваш скрипт вызывает внешнюю утилиту, а не встроенную bash
.
Наиболее вероятная причина этого:
- ваш сценарий говорит
#!/bin/sh
вместо #!/bin/bash
; и
-
/bin/sh
на вашем компьютере на самом деле не bash
, а более легкая POSIX-совместимая оболочка без расширений bash
(как в наши дни встречается в некоторых дистрибутивах Linux).
Решение состоит в том, чтобы убедиться, что скрипт специально вызывает bash
, используя #!/bin/bash
, если он использует bash
расширения.