PHP 相当于 Bash 中的退出状态


php equivalent of exit status in bash

我有一个bash脚本,现在我需要将其转换为php,作为cgi脚本。看到我有这样的 bash 线

wget http://repo.domain/sources/latest_version.tar.gz > /dev/null 2>&1;
if [ $? != 0 ]
then
echo "Could not download file...";
exit 0;
fi

如果我使用 php system/exec 运行wget,有没有办法像$?脚本中使用的那样捕获退出状态?我已经阅读了文件下载可以使用file_put_contents()完成,就像这篇堆栈溢出帖子中的此处一样。但我也担心allow_fopen_url Off部分作为提到的评论之一。我认为我需要一个更通用的解决方案,将从 bash 到 php 的更改保持在最低限度。

如何在此处捕获退出状态?请提供任何提示?

有一个exit函数。从 php 文档:

void exit ([ string $status ] )
void exit ( int $status )

终止脚本的执行。即使调用 exit,也会始终执行关闭函数和对象析构函数。

exit 是一种语言构造,如果未传递状态,则可以不带括号调用它。

所以在你的情况下,这将是exit(0)

编辑:好吧,据我所知,wget 是一个 linux shell 命令而不是 php,您可能可以运行它并获得输出?

exec('wget http://repo.domain/sources/latest_version.tar.gz > /dev/null 2>&1', $output, $return_var);

同样,根据文档:

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