我基本上想要使用shell_exec
检查命令是否成功运行。
简单功能:
public static function foo()
{
$command = "blabla";
shell_exec($command);
}
编辑,我尝试了M先生的建议:
foreach($commands as $key => $value)
{
shell_exec($value, $output, $return);
}
我收到了这个错误:
未定义的变量:输出
答案 0 :(得分:3)
尝试使用exec
exec($command, $output, $return);
if ($return != 0) {
// error occurred
}else{
// success
}
答案 1 :(得分:1)
如果只需要命令的退出代码,则应使用PHP docs代替shell_exec
。
答案 2 :(得分:0)
你可以这样做:
$output = shell_exec('ls -lart');
echo "<pre>$output</pre>";
并验证输出。
但根据手册:
注意: 发生错误或程序不产生输出时,此函数可以返回 NULL 。使用此功能无法检测执行失败。当需要访问程序退出代码时,应使用exec()。
答案 3 :(得分:0)
这取决于您的命令是否返回任何输出。根据{{3}}:
shell_exec - 通过shell执行命令并将完整输出作为字符串
返回
和
返回值
执行命令的输出,如果发生错误,则为NULL 该命令不产生输出。
注意:此函数可在发生错误或返回时返回NULL 程序不产生输出。无法检测执行 使用此功能失败。访问时应使用exec() 程序退出代码是必需的。
因此,如果你可以期望命令中的输出出现,只需捕获shell_exec函数的返回值。