大家好,
    废话就不多说了,直接说说我的问题吧.我需要从html的两个输入框(类似于登录系统)中获取用户输入的字符串.当用户填完信息,点击提交按钮时,将字符串作为参数传递给shell脚本,并且执行该shell脚本完成后台的一些列工作...
    作为中间的过渡,我选择用php脚本.php脚本内容如下:
 
<?php
$NAME=$_POST["Name"];
$TIME=$_POST["Time"];
/*$NAME=11;
$TIME=22;*/
echo $NAME;
echo "<br><br>";
echo $TIME;
shell_exec("bash /home/someone/script/test.sh $NAME $TIME && date>tt ");
?>test.sh脚本的内容如下:#!/bin/bash
current_dir=`dirname $0`
cd $current_dir
echo $1>test.txt
echo $2>>test.txt
echo success>>test.txt
cd - 1>/dev/null当我在html页面填写完,点击提交后.页面打印出所填写信息的值,并且当前目录下也生成了含有日期信息的"tt"文件,但是test.sh却没有执行,即看不到它的执行效果.接下来,我选用另外一种方式测试,直接赋值,修改php代码如下:<?php
/*$NAME=$_POST["Name"];
$TIME=$_POST["Time"];*/
$NAME=11;
$TIME=22;
echo $NAME;
echo "<br><br>";
echo $TIME;
shell_exec("bash /home/someone/script/test.sh $NAME $TIME && date>tt ");
?>
  
然后做同样的操作,结果当前目录下面生成了含有日期信息的"tt"文件,也看到了test.sh文件执行的效果,即test.txt文件里有传进来的参数和success.这说明:在html页面输入并通过浏览器传值的时候,不能正确执行shell脚本;如果不通过页面输入值,而在php脚本里面赋值,则没有问题.希望大家可以帮我解决这个通过浏览器也能正确执行shell脚本的问题!   谢谢

解决方案 »

  1.   

    shell_exec 好像蛮多权限限制的.先查看是否有这个exec 的相关设置和权限正常了先.不过我也几乎没碰过shell_exec.
      

  2.   

    html代码呢?
    你的html种的input的name属性值看好了是Name和Time吗,大小写注意,要通过表单或者ajax
      

  3.   

    回复四楼:
             HTMl代码里的Name和Time没有问题,代码如下:<html>
    <body><form action="welcome.php" method="post">
    Name: <input type="text" name="Name" />
    Time: <input type="text" name="Time" />
    <input type="submit" />
    </form></body>
    </html>
      

  4.   

    回复2楼
           采用直接赋值的方式可以正确执行那个shell脚本啊,shell_exec对于文件的权限应该没有问题吧,还是应该注意些什么,请详细指点一下。谢谢!该有改用system也是同样的效果。