我正在尝试从php脚本中执行bash脚本。
php脚本是:
<?php
$clientName = $_POST['clientName'];
$startDate = $_POST['startDate'];
$endDate = $_POST['endDate'];
$mode = $_POST['mode'];
echo("Current working directory = " . getcwd());
echo("Client Name = " . $clientName . "<br/>\n");
echo("Start date = " . $startDate . "<br/>\n");
echo("End date = " . $endDate . "<br/>\n");
echo("Mode = " . $mode . "<br/>\n");
$cmd = "/webroot/argRepeater.bash escapeshellarg($clientName) escapeshellarg($startDate) escapeshellarg($endDate) escapeshellarg($mode)";
echo("Command = " . $cmd . "<br/>\n");
var_dump($cmd);
exec("/bin/bash ./argRepeater.bash escapeshellarg($clientName) escapeshellarg($startDate) escapeshellarg($endDate) escapeshellarg($mode)", $output, $output2);
echo("Output array = " . print_r($output) . "<br/>\n");
echo("Output = " . $output2 . "<br/>\n");
?>上面的php脚本从html表单中获取参数。bash脚本argRepeater.bash只重复提供给它的任何参数。输出如下:
Current working directory = /home/content/31/10199331/htmlClient Name = yum
Start date = 2013-05-14
End date = 2013-05-24
Mode = fir
Command = ./argRepeater.bash escapeshellarg(yum) escapeshellarg(2013-05-14) escapeshellarg(2013-05-24) escapeshellarg(fir)
string(128) "./argRepeater.bash escapeshellarg(yum) escapeshellarg(2013-05-14) escapeshellarg(2013-05-24) escapeshellarg(fir)" Array ( ) Output array = 1
Output = 1 我的问题:
发布于 2013-05-05 03:58:24
要确保argRepeater获得executed?,还需要做更多的工作
好吧,它需要它所需要的一切。如果你不能确定它是否有效,可以解决你的需求。Output = 1发出信号,它确实在某种意义上执行了某些东西。
上显示argRepeater的输出
你已经这样做了:
echo("Output array = " . print_r($output) . "<br/>\n");因此,您还可以询问一些已经由您自己的代码解决的问题。
所以问题可能只是你不确定你是否理解你的代码?如果是这样,只需仔细检查手册中的每一条语句即可。
https://stackoverflow.com/questions/16378339
复制相似问题