| Summary: | does not recognize "time" and TIMEFORMAT | ||
|---|---|---|---|
| Product: | Sisyphus | Reporter: | alexey.tourbin |
| Component: | sh | Assignee: | placeholder <placeholder> |
| Status: | NEW --- | QA Contact: | qa-sisyphus |
| Severity: | normal | ||
| Priority: | P3 | CC: | glebfm, lav, ldv, placeholder, rider, vt |
| Version: | unstable | ||
| Hardware: | all | ||
| OS: | Linux | ||
(In reply to comment #0) > Почему-то в вашем самосборном шелле time не распознается как особая > конструкция, вместо нее всегда запускается /usr/bin/time. У нас традиционно bash собран c --disable-command-timing, примерно с 1999 года: * Tue Jul 8 1999 Thierry Vignaud <tvignaud@mandrakesoft.com> ... - disable built-in time command (incompatible with standard POSIX time command) > $ strace -f -e trace=execve sh -c 'time echo X' |grep execve Зачем этот grep? strace выводит trace в stderr. Опция противоречит документированному поведению в 'info bash'. В других дистрибутивах bash собран без этой опции. Я за возвращение time built-in'а в bash. (In reply to comment #3) > Я за возвращение time built-in'а в bash. Только с поддержкой -f и -o из GNU time, иначе я против. А разве ты не можешь энфорсить запуск gnu time по пути ? |
Мужчины, после обновления bash у меня сломался скрипт, точнее появились в нем дефекты, который скачивает и перекодирует видео с иностранных сайтов. В скрипте в частности написано: TIMEFORMAT="${I//\%/%%}: time ffmpeg: %0lR elapsed %P%% cpu"; time \ "${ffmpeg[@]}" -i $tmp-a.mp4 -r 25 -i "$4" -map 1:v -map 0:a -c:a copy \ Почему-то в вашем самосборном шелле time не распознается как особая конструкция, вместо нее всегда запускается /usr/bin/time. $ strace -f -e trace=execve sh -c 'time echo X' |grep execve execve("/usr/bin/time", ["time", "echo", "X"], 0x13fea30 /* 63 vars */) = 0 Между тем time жестко зашито в определение шелл-синтаксиса. Даже интересно, как это у вас такой битый шелл собрался. $ info bash |grep 'time .*-p' [time [-p]] [!] COMMAND1 [ | or |& COMMAND2 ] ...