使用2>& 1来输出错误时,exec的返回码是错误的

时间:2018-04-20 00:23:31

标签: php unix exec

我使用exec执行一些unix命令,如下所示:

exec('cd /var/www/html/ && export PATH=$PATH:usr/loval/bin/npm &&  npm run dev; 2>&1', $output, $return_code_npm_run_dev);

我需要输出错误,所以我在命令的末尾放了2>& 1。但是,当我这样做时,返回代码(此处:$return_code_npm_run_dev)始终为0.当我删除2>&1时,返回代码是我想要的(如果出错则为1,如果全部为0则为0)确定。)

我的问题是:当我重定向stderr时,为什么exec发送给我0? 还有另一种方法可以获得良好的返回代码和stderr打印吗?

1 个答案:

答案 0 :(得分:0)

Get rid of the semi-colon here:

npm run dev; 2>&1