从 php 执行 bash 脚本在 Windows 上不起作用


Executing bash script from php not working on Windows

我已经在 xampp ( ubuntu ) 下执行了这个脚本,它工作正常。 但是当我尝试在 Windows 下执行它时,它没有给我错误,也没有输出。

<? $command='ls -l'; $output = shell_exec($command); echo $output; ?>

PHP 不以保存模式运行。 问题出在哪里? 是否取决于操作系统?

这是因为ls是基于Unix的命令,在Windows上不可用

不显示错误是因为shell_exec只输出 STDOUT 而不是 STDERR,如果您希望能够查看错误,您可以像这样运行命令:

$output = shell_exec("{$command} 2>&1");

这将显示一个错误,指出未找到 ls 或类似内容

在Windows而不是LS中,您可以运行目录

这可能会有所帮助:

<?
    $command=substr(PHP_OS, 0, 3)=='WIN'?'dir':'ls -l';
    $output = shell_exec("{$command} 2>&1");
    echo $output;
?>