0

我正在编写一个应用程序,它从用户那里获取文本输入来生成一个文本文件。将生成的文本文件作为输入的 bash 脚本应该生成另一个脚本作为输出。

我尝试使用 exec 命令,但我不确定它是否有效。我想要这样的东西:

exec('generate.sh input.txt generated.sh');

generate.sh 有两个输入:

  1. input.txt文件 - 有来自 PHP 页面的用户输入(文本由 '\n' 分隔)
  2. generated.sh- 生成文件的名称(由“generate.sh”生成)。

如何从 PHP 执行 bash 脚本以获得上述输出?

提前致谢。

4

2 回答 2

0

exec 的整个参数需要是这样的字符串:

exec('generate.sh input.txt generated.sh');
于 2012-08-14T14:34:25.357 回答
0
$generate = '/path/to/generate.sh';
$input = '/path/to/input.txt';
$generated = '/path/to/generated.sh';

if(file_exists($generate))
{
    chmod($generate, 0755);
    if(file_exists($input))
    {
        exec($generate.' '.$input.' '.$generated);
    }
    else
    {
        echo "Input file not found: ".$input."<br />";
    }
}
else
{
    echo "Generate file not found: ".$generate."<br />";
}

此外,您还可以考虑使用 system()、shell_exec()、passthru() 或 proc_open() 来执行外部命令。

于 2012-08-14T14:59:07.253 回答