无法将变量从php传递给bash

时间:2014-01-18 00:17:40

标签: php bash shell

我正在尝试设置一个html表单,将变量传递给php脚本,然后将它们传递给bash脚本。

我能够成功地将变量从html表单传递到php脚本,并且我能够将以下传递变量传递给我的bash脚本:

<?php
shell_exec('./bashscript.sh testarg1 testarg2 testarg3 testarg4');
?>

但是,当我使用以下内容时:

<?php
  shell_exec('./bashscript.sh $_POST[arg1] $_POST[arg2] $_POST[arg3] $_POST[arg4]');
?>

我最终得到了:

[arg1]
[arg2]
[arg3]
[arg4]

这是我第一次尝试从php传递给bash。括号内的参数发布到数据库,没有任何问题。如何更改此选项以成功将参数传递给我的bash脚本? THX。

1 个答案:

答案 0 :(得分:0)

变量在双引号字符串中扩展,而不是在单引号字符串中。

shell_exec("./bashscript.sh $_POST[arg1] $_POST[arg2] $_POST[arg3] $_POST[arg4]");

这是基本的PHP语法,与使用shell无关。

如果它包含shell元字符,你还应该在替换它之前使用escape_shell_arg来转义每个参数。