我希望从php调用一个shell脚本并传递输入参数。我不是很多用php,但我尝试使用shell_exec函数,仍然无法使用。
<?php
$a = "www.google.com";
echo shell_exec('sh test9.sh' , "$a");
?>
shell文件是
#!/bin/sh
echo $a
答案 0 :(得分:1)
PHP的shell_exec
不接受可变参数;你需要使用整个shell语句传递一个字符串参数。
echo shell_exec("sh test9.sh '$a'");
此外,如果$a
包含不受信任的内容(如用户输入),绝对永远不会忘记使用escapeshellarg
转义该值功能。否则你将容易受到shell injection attacks的攻击。</ p>
答案 1 :(得分:0)
你必须做的事
echo shell_exec('sh test9.sh www.google.com');
然后在sh脚本中
echo $1
阅读关于linux“sh”的命令,也许你必须使用sh“/a/b/c/d.sh”的absolutpath而不用路径之前的sh
shell_exec没有第二个参数