从PHP调用bash脚本以生成另一个脚本

时间:2012-08-14 14:32:19

标签: php bash

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

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

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

generate.sh需要两个输入:

  1. input.txt file - 来自PHP页面的用户输入(文本用'\ n'分隔)
  2. generated.sh - 生成的文件的名称(由'generate.sh'生成)。
  3. 如何从PHP执行bash脚本以获得上述输出?

    提前致谢。

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分: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()来执行外部命令。