Когда date и timedatectl?

Не похоже, что вы могли бы, справочная страница действительно перечисляет ряд опций форматирования, но нет возможности установить точность. Например, кажется, что %e, %Sи %Uвсегда выдают результат с двумя десятичными знаками.

С другой стороны, встроенная функция Bash timeподдерживает установку количества цифр после запятой вплоть до 3, поэтому вы можете использовать ее для получения желаемого. Переменная окружения TIMEFORMATуправляет форматом вывода :

.

$ TIMEFORMAT='real: %3R user: %3U sys: %3S cpu: %P' bash -c 'time sleep 1.233'
real: 1.234 user: 0.000 sys: 0.000 cpu: 0.00

Или просто без установки TIMEFORMAT, так как вывод по умолчанию также показывает три цифры. Однако он разделяет минуты:

$ bash -c 'time sleep 1.233'

real    0m1.234s
user    0m0.000s
sys     0m0.000s

Системный вызовgetrusage()дает время как struct timeval, то есть с точностью до микросекунд, поэтому я полагаю, что вы могли бы сделать свою собственную реализацию timeдля большей точности. Другое дело, насколько точны цифры.

0
19.09.2021, 19:57
2 ответа

dateявляется частью GNU coreutils , доступен во всех системах Linux, часто используется в сценариях.

timedatectlявляется частью systemd .

Эти два инструмента используются для установки/отображения времени и даты.

см. :info date,man timedatectl

1
20.09.2021, 11:34

date — старый инструмент UNIX, timedatectl— новый инструмент создателей systemd, поэтому он доступен только в дистрибутивах с systemd.

Используйте все, что вам нравится, когда это возможно.

1
20.09.2021, 08:01

Теги

Похожие вопросы