0

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

这是代码:

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

它需要所有的空格字符接受“$”

如何在 shell_exec 中传递“$”?

提前致谢。

4

2 回答 2

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);
于 2013-07-22T10:56:34.217 回答
0

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

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

$msg = "Hello world"; shell_exec("notify-send ".$msg);
于 2013-07-22T11:00:01.193 回答