【问题标题】:Cannot run any process command in Symfony无法在 Symfony 中运行任何进程命令
【发布时间】:2020-11-08 09:03:18
【问题描述】:

我正在尝试在 Symfony 5.1 中运行 linux 进程,如下所述: https://symfony.com/doc/current/components/process.html

use Symfony\Component\Process\Process;

(...)

$command = 'echo hello';
$process = new Process([$command]);

$process->start();

foreach ($process as $type => $data) {
    if ($process::OUT === $type) {
        echo "\nRead from stdout: ".$data;
    } else { // $process::ERR === $type
        echo "\nRead from stderr: ".$data;
    }
}

无论我的命令行是什么,我都会得到以下输出:

Read from stderr: sh: 1: exec: echo hello: not found

【问题讨论】:

    标签: php shell symfony symfony5


    【解决方案1】:

    在您提到的文档中,您可以看到示例:https://symfony.com/doc/current/components/process.html#usage

    $process = new Process(['ls', '-lsa']);
    

    Process 构造函数的源代码: https://github.com/symfony/symfony/blob/5.1/src/Symfony/Component/Process/Process.php#L132

    第一个参数是:

    * @param array          $command The command to run and its arguments listed as separate entries
    

    试试$process = new Process(['echo', 'hello']); 而不是$process = new Process(['echo hello']);

    【讨论】:

    • 谢谢,我认为参数列表是可选的。
    猜你喜欢
    • 1970-01-01
    • 2019-07-01
    • 1970-01-01
    • 2017-02-10
    • 2022-07-07
    • 2022-10-25
    • 2018-01-08
    • 1970-01-01
    • 2020-09-27
    相关资源
    最近更新 更多