0

我正在尝试从 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  

我的问题:
1. 还需要做些什么来确保 argRepeater 被执行?
2. 如何在网页上显示 argRepeater 的输出?

4

1 回答 1

1

1. 还需要做些什么来确保 argRepeater 被执行?

那么它需要它所需要的一切。如果您不确定它是否成功,请解决您的需求。Output = 1从某种意义上说,它确实在执行某些操作。

2. 如何在网页上显示 argRepeater 的输出?

你已经这样做了:

echo("Output array = " . print_r($output) . "<br/>\n");

同样,您询问已经由您自己的代码解决的问题。

所以问题可能只是你不确定你是否理解你的代码?如果是这样,请仔细检查您使用手册编写的每条语句。

于 2013-05-04T19:58:23.690 回答