从PHP调用bash脚本生成另一个脚本
问题描述:
我在写一个应用程序,它从用户的文本输入生成一个文本文件。将生成的文本文件作为输入的bash脚本应该生成另一个脚本作为输出。从PHP调用bash脚本生成另一个脚本
我尝试使用exec命令,但我不知道它是否工作。我想是这样的:
exec('generate.sh input.txt generated.sh');
generate.sh有两个输入端:
-
input.txt
文件 - 有从PHP页面(文字由 '\ n' 分隔) -
generated.sh
用户输入 - 名生成的文件(由'generate.sh'生成)。
如何从PHP执行bash脚本以获得上述输出?
在此先感谢。
答
整个参数给exec需要像这样的字符串:
exec('generate.sh input.txt generated.sh');
答
$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 />";
}
此外,您也可以考虑系统(),了shell_exec(),中继()或proc_open()来执行外部命令。
generate.sh也需要用引号 – tubaguy50035 2012-08-14 14:33:49