php - 如何检查在 php 中完成的 bash shell

标签 php linux bash shell

我在 php 中处理 bash shell 时遇到困难。 我的问题如下。 我有 3 个任务对应于 3 个 bash shell 文件(task1.sh、task2.sh、task3.sh)。当task1.sh处理完后,task2.sh会自动执行,当task2.sh处理完后,task3.sh会自动执行。

最初,我编写了一个名为 task.sh 的文件,并将 task1.sh、task2.sh、task3.sh 嵌入其中。但我想将这 3 个任务嵌入到一个 php 文件中。

例如:我创建 task.php 并执行以下操作:

  • 如果 task1.sh 失败,它将显示弹出(警告)错误消息。
  • 如果 task1.sh 处理完成,那么 task2.sh 将继续自动完成。
  • task2.sh和task3.sh的处理同上。

我想在后台运行所有 3 个任务。问题是当我运行后台bash shell时,我将无法检查失败的错误语句(结果总是返回0)。

我学到了很多,查阅了很多文档,但对我没有帮助。

希望大家多多支持

对不起,我的英语很差。

最佳答案

您可以使用exec()$retval 参数。

<?php

exec('task1.sh', $output, $retval);
if ($retval !== 0) {
  // task 1 failed
  exit('Error running task1: ' . implode("<br/>\n", $output));
}

exec('task2.sh', $output, $retval);
if ($retval !== 0) {
  // task 2 failed
  exit('Error running task1: ' . implode("<br/>\n", $output));
}

exec('task3.sh', $output, $retval);
if ($retval !== 0) {
  // task 3 failed
  exit('Error running task1: ' . implode("<br/>\n", $output));
}

关于php - 如何检查在 php 中完成的 bash shell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55489451/

相关文章:

PHP 获取日期与今天的日期之间的天数差异(现在)

php - 是否可以只允许从一个站点到一个页面的流量?

javascript - 如何通过管理面板轻松编辑网页?

php - symfony2 中的 var_dump 数据过多

linux - 执行包含特殊字符的字符串

linux - 修复现有系统日志文件中的时间戳偏差

bash - 构建一个在脚本中使用的解析器(bash)

linux - 脚本中 ps aux 和 `ps aux` 之间的不同结果

python - 无法使用 Scrapy dist-packages/cryptography/hazmat/bindings/_openssl.so 启动项目

bash - 将 shell 输出绑定(bind)到 Go 中的结构的最佳方法?