我有一个 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 或包装在输出缓冲区语句中,我都不会看到这个不需要的输出。
我已经阅读了 PHP 中 exec() 调用的抑制输出,但无法解决问题。