Мужчины, после обновления 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 ] ...
(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 по пути ?