2011-11-26 49 views
2

我试图将数据从PHP发送到bash脚本,然后将数据输出回用户。为什么我无法将“bean”发送到simple.sh并让它回显?将数据从PHP发送到bash脚本

最后,我的目标是让我的web浏览器输出“beans”。非常简单,但我不能得到它的工作(完整noob)。

这里是我的test.php:

<?php 
echo "<pre>"; 
    $var = 'beans'; 
    exec("/var/www/html/dev/simple.sh $var", $output); 
    echo var_dump($output); 
echo "</pre>";  
?> 

这里是我的simple.sh:

read var 
echo $var 

我在做什么错?

回答

2

你不执行你的shell脚本所以这里是正确的代码:

echo "<pre>"; 
    $var = 'beans'; 
    exec("sh /var/www/html/dev/simple.sh $var", $output); 
    echo var_dump($output); 
echo "</pre>"; 

而且,你有什么问题与您的shell脚本:

#!/bin/sh 
echo $1 

注意:命令READ是仅从键盘扫描字符串!如果您想通过参数传递它,请仅回显这些$ 1,$ 2,$ 3,...这是您逐个输入的参数数量。

0

你通过$ 1,$ 2,等进入外壳参数,所以试试这个:

var=$1 
echo $var 
0

“读VAR”正试图从标准输入读取一行,并把它放在一个变量。

您将$ var作为命令行参数传递给脚本,而不是将它传递给标准输入。

1

您的shell脚本不会执行您认为它的操作。 read var将读取用户输入,而不是命令行参数。将simple.sh更改为更类似于:

#!/bin/bash 

echo $1 

该脚本假定您只希望将第一个参数传递给shell脚本。如果您需要更多,则必须适当修改脚本。我猜你最终会做一些与你的shell脚本完全不同的东西,并且命令行参数不是目标,所以这应该足够你的测试。

相关问题