Return 使用2>&1 输出错误时exec 代码错误
Return code of exec is wrong when using 2>&1 to have the error output
我正在使用 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 代码(此处:$return_code_npm_run_dev
)始终为 0。当我删除 2>&1
时,return 代码就是我想要的(如果为 1有问题,0 如果一切正常。)
我的问题是:为什么 exec
在我重定向 stderr 时发送给我 0
?
是否有另一种方法来获得良好的 return 代码和 stderr 打印?
去掉这里的分号:
npm run dev; 2>&1
我正在使用 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 代码(此处:$return_code_npm_run_dev
)始终为 0。当我删除 2>&1
时,return 代码就是我想要的(如果为 1有问题,0 如果一切正常。)
我的问题是:为什么 exec
在我重定向 stderr 时发送给我 0
?
是否有另一种方法来获得良好的 return 代码和 stderr 打印?
去掉这里的分号:
npm run dev; 2>&1