我在 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/