Summary: | Отсутствует встроенная команда time | ||
---|---|---|---|
Product: | Sisyphus | Reporter: | xdsl |
Component: | bash5 | Assignee: | placeholder <placeholder> |
Status: | CLOSED NOTABUG | QA Contact: | qa-sisyphus |
Severity: | normal | ||
Priority: | P5 | CC: | aen, amakeenk, asy, glebfm, iv, ldv, placeholder, rider, zerg |
Version: | unstable | ||
Hardware: | x86_64 | ||
OS: | Linux |
Description
xdsl
2023-12-21 08:36:16 MSK
Команда time есть в отдельном пакете с аналогичным названием: $ time Usage: time [-apvV] [-f format] [-o file] [--append] [--verbose] [--portability] [--format=format] [--output=file] [--version] [--quiet] [--help] command [arg...] $ rpm -qf $(which time) time-1.7-alt4.x86_64 (In reply to xdsl from comment #0) > Возможное объяснение в спеке: Tue Jul 8 1999 Thierry Vignaud > <tvignaud@mandrakesoft.com> : "disable built-in time command (incompatible > with standard POSIX time command)". > > 24 года прошло, причина все еще актуальна? Или причина в чем-то другом? А этого, разве, мало? Или time в bash стал совместим с POSIX? На что ориентируются скрипты, использующие time, и как они себя поведут в bash, котрый пересборан с встроенной time? Под рукой были Ubuntu, Debian, Mandrake, Astra - все собирают bash с командой time. Утилита меряет время до сотых секунды, команда - до тысячных. Может в 99 году это было несущественно, но сейчас - актуально. Пусть мантейнер пакета решит. Тогда уж сразу на bash5 (In reply to Anton Farygin from comment #5) > Тогда уж сразу на bash5 А в p11 что по умолчанию предполагается? (Ответ для Sergey Y. Afonin на комментарий #6) > (In reply to Anton Farygin from comment #5) > > > Тогда уж сразу на bash5 > > А в p11 что по умолчанию предполагается? https://packages.altlinux.org/ru/sisyphus/srpms/bash-defaults/ p11 будет бранчеваться из нынешнего Sisyphus (In reply to xdsl from comment #3) > Под рукой были Ubuntu, Debian, Mandrake, Astra - все собирают bash с > командой time. > Утилита меряет время до сотых секунды, команда - до тысячных. Может в 99 > году это было несущественно, но сейчас - актуально. time ничего не меряет, все измерения производит ядро, time лишь выводит результат измерений. Формат вывода time(1), в том числе точность, настраивается с помощью параметра --format. Появление bash builtin, перекрывающего time(1), создало бы проблемы пользователям bash, которые используют возможности time(1), отсутствующие в bash builtin. Не следует ломать обратную совместимсть без веских оснований. (Ответ для Dmitry V. Levin на комментарий #8) > (In reply to xdsl from comment #3) > > Под рукой были Ubuntu, Debian, Mandrake, Astra - все собирают bash с > > командой time. > > Утилита меряет время до сотых секунды, команда - до тысячных. Может в 99 > > году это было несущественно, но сейчас - актуально. > > time ничего не меряет, все измерения производит ядро, time лишь выводит > результат измерений. Формат вывода time(1), в том числе точность, > настраивается с помощью параметра --format. Появление bash builtin, > перекрывающего time(1), создало бы проблемы пользователям bash, которые > используют возможности time(1), отсутствующие в bash builtin. Не следует > ломать обратную совместимсть без веских оснований. В time.c из https://git.altlinux.org/tasks/278099/build/4500/x86_64/srpm/time-1.7-alt4.src.rpm недвусмысленно сказано: ... 369 case 'E': /* Elapsed real (wall clock) time. */ 370 if (resp->elapsed.tv_sec >= 3600) /* One hour -> h:m:s. */ 371 fprintf (fp, "%ld:%02ld:%02ld", 372 resp->elapsed.tv_sec / 3600, 373 (resp->elapsed.tv_sec % 3600) / 60, 374 resp->elapsed.tv_sec % 60); 375 else 376 fprintf (fp, "%ld:%02ld.%02ld", /* -> m:s. */ 377 resp->elapsed.tv_sec / 60, 378 resp->elapsed.tv_sec % 60, 379 resp->elapsed.tv_usec / 10000); 380 break; ... Каким образом можно получить тысячные доли секунды таким кодом? Какой --format поможет? |