将数据从PHP发送到bash脚本
我试图将数据从PHP发送到bash脚本,然后将数据输出回用户。为什么我不能将“beans”发送到simple.sh并得到它的响应 最后,我的目标是让我的web浏览器输出“bean”。非常简单,但我不能让它工作(完全noob) 下面是我的test.php:将数据从PHP发送到bash脚本,php,bash,exec,sh,Php,Bash,Exec,Sh,我试图将数据从PHP发送到bash脚本,然后将数据输出回用户。为什么我不能将“beans”发送到simple.sh并得到它的响应 最后,我的目标是让我的web浏览器输出“bean”。非常简单,但我不能让它工作(完全noob) 下面是我的test.php: <?php echo "<pre>"; $var = 'beans'; exec("/var/www/html/dev/simple.sh $var", $output); echo var_dump(
<?php
echo "<pre>";
$var = 'beans';
exec("/var/www/html/dev/simple.sh $var", $output);
echo var_dump($output);
echo "</pre>";
?>
我做错了什么?您可以通过$1、$2等访问shell参数,因此请尝试以下方法:
#!/bin/bash
echo $1
“readvar”试图从标准输入中读取一行,并将其放入变量中
您正在将$var作为命令行参数传递给脚本,而不是将其传递给标准输入。您的shell脚本并不像您想象的那样<代码>读取变量将读取用户输入,而不是命令行参数。将simple.sh更改为类似以下内容:
echo "<pre>";
$var = 'beans';
exec("sh /var/www/html/dev/simple.sh $var", $output);
echo var_dump($output);
echo "</pre>";
该脚本假定您只希望将第一个参数传递给shell脚本。如果您需要更多,则必须适当地修改脚本。我猜您最终会对shell脚本执行一些非常不同的操作,并且命令行参数不是目标,因此这对于您的测试来说应该足够好了。您没有执行shell脚本,因此下面是正确的代码:
#!/bin/sh
echo $1
注意:命令读取仅用于从键盘扫描字符串!!如果您想通过参数传递它,请只回显这些$1、$2、$3,。。。这是你一个接一个输入的参数数
echo "<pre>";
$var = 'beans';
exec("sh /var/www/html/dev/simple.sh $var", $output);
echo var_dump($output);
echo "</pre>";
#!/bin/sh
echo $1