用输入参数从php调用shell的问题

时间:2015-12-15 20:57:47

标签: php shell

我希望从php调用一个shell脚本并传递输入参数。我不是很多用php,但我尝试使用shell_exec函数,仍然无法使用。

<?php
$a = "www.google.com";
echo shell_exec('sh test9.sh' , "$a");
?>

shell文件是

#!/bin/sh
echo $a

2 个答案:

答案 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没有第二个参数