“$”传递给shell exec

时间:2013-07-22 10:53:34

标签: php linux passwords

我正在尝试为Linux系统用户更改密码编写一个应用程序。

以下是代码:

shell_exec("/usr/bin/passwd ".$user." <<EOF\n".$password."\n".$password."\nEOF");

所有空间字符都接受“$”

如何在shell_exec中传递“$”?

提前致谢。

2 个答案:

答案 0 :(得分:2)

您可以使用\$转义它,或在单引号中包含您的字符串内容。单引号不会扩展变量

shell_exec('/usr/bin/passwd $'.$user." <<EOF\n".$password."\n".$password."\nEOF");

或者您也可以将命令字符串传递给shellescapearg,如下所示

$arg = $user." <<EOF\n".$password."\n".$password."\nEOF";
shell_exec('usr/bin/passwd ' . $arg);

答案 1 :(得分:0)

我认为错误与$符号无关。类似于你的代码对我来说效果很好。

我使用以下内容进行测试:

$msg = "Hello world"; shell_exec("notify-send ".$msg);