PHP exec() 只执行最后一条命令?

PHP exec() execute last command only?

这是一个试图理解 exec() 函数的例子

<?php
    error_reporting(E_ALL);
    ini_set('display_errors', 1);
    echo exec("id;ls");
?>

当我运行这段代码只得到ls的结果

exec() 是只执行最后一条命令还是同时执行这两条命令并回显最后一条命令?

您需要为 Linux 编写一个 shell 脚本(可使用 .sh 文件执行)

为此您可以使用 shell_exec()

另一方面,exec() returns 仅输出最后一行(默认情况下),但您可以为输出数组提供引用作为第二个参数。

有关详细信息,请参阅文档。

exec returns 命令结果的最后一行。您必须使用 output 参数。如果存在输出参数,则指定的数组将填充命令输出的每一行。

exec("id;ls", $output);
var_dump($output);