Невозможно подавить вывод команды dos2unix в вывод консоли jenkins

У меня есть запущенный проект Jenkins, который имеет следующую команду, обернутую в PHP exec —

$dos2unix = exec("dos2unix ".$filePath);

Он показывает следующий нежелательный вывод команды в выводе консоли Jenkins и загромождает экран —

dos2unix: converting file /home/jenkins/deployment_beta/phing/scratchpad/adserver/app/webroot/openx/lib/OA/Dal/Delivery/mysql.php to UNIX format ...
dos2unix: converting file /home/jenkins/deployment_beta/phing/scratchpad/adserver/app/webroot/openx/lib/OA/Dal/Maintenance/Statistics/Common.php to UNIX format ...

Я попытался обернуть команду в ob_start () и ob_end_clean (), а также направил вывод в / dev / null —

ob_start();
$dos2unix = exec("dos2unix ".$filePath." > /dev/null");
ob_end_clean();

Но я все еще получаю то же самое в выводе консоли.

Примечание. Если я запускаю сборку вручную в командной строке, я не вижу этот нежелательный вывод, независимо от того, направил ли я вывод в / dev / null или обернут в операторы буфера вывода.

я прочитал Подавление вывода из вызовов exec () в PHP но не смог решить проблему.

1

Решение

dos2unix печатает свои сообщения в stderr. Чтобы перенаправить их, вам нужно использовать 2> вместо>.

$dos2unix = exec("dos2unix ".$filePath." 2> /dev/null");

Другой вариант — использовать опцию -q. С -q dos2unix не будет печатать сообщения и не будет возвращать код ошибки, если что-то пойдет не так.

$dos2unix = exec("dos2unix -q ".$filePath.");
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]