0

我有闲置代码

<html>
<body>
<?php
if ($_GET['run']) {
  # This code will run if ?run=true is set.
 echo "Hello";
  exec ("chmod a+x ps.sh");

  exec ("sh ps.sh");
}
?>

<!-- This link will add ?run=true to your URL, myfilename.php?run=true -->
<a href="?run=true">Click Me!</a>

现在我想知道exec ("chmod a+x ps.sh")是否正确执行。我应该怎么办??

4

3 回答 3

1

看看文档

string exec ( string $command [, array &$output [, int &$return_var ]] )

...

return_var

如果 return_var 参数与输出参数一起存在,则执行命令的返回状态将写入此变量。

所以只需检查返回码是否不等于零:

exec ("chmod a+x ps.sh", $output, $return);
if ($return != 0) {
    // An error occured, fallback or whatever
    ...
}
于 2013-08-07T13:54:48.893 回答
0
exec(..., $output, $return);

if ($return != 0) {
    // something went wrong
}

通过为第三个参数提供变量名来捕获返回码。如果该变量0之后包含,一切都很好。如果它不是0,则出现问题。

于 2013-08-07T13:54:48.223 回答
0

exec() 接受其他参数。第二个是输出,它允许您查看命令的输出。

在 chmod 的情况下,正确的输出什么都不是。

exec() 的第三个参数是返回状态。如果成功,它应该为 0。

然后,您应该执行以下操作:

exec ("chmod a+x ps.sh", $out, $value);

if(!empty($out) || $value != 0)
{
    #there was an error
}

注意:您不必事先初始化 $out 或 $value,PHP 会在您使用它们时创建它们。

于 2013-08-07T13:58:35.590 回答