Laravel 命令执行输出

我正在尝试制作 artisan 命令,它将执行一个无休止的脚本(更准确地说,它是一个 gulp watch 命令)。是否可以实时输出一些东西到控制台而不是等待脚本结束?


exec($basedir . "test.sh", $output);


foreach ($output as $item) {

    $this->info($item);

}

test.sh看起来像这样(为简洁起见缩短):


echo "something"

echo "something else"


gulp watch

由于命令实际上并未结束,因此我无法检索其中运行的两个回声。有办法吗?


一只名叫tom的猫
浏览 141回答 1
1回答

米脂

我已经通过执行以下操作解决了它:while (@ ob_end_flush()) ; // end all output buffers if any// this section streams output to terminal $proc = popen($basedir . "test.sh", 'r');while (!feof($proc)) {    $this->info(fread($proc, 4096));    @ flush();}
打开App,查看更多内容
随时随地看视频慕课网APP