我正在尝试为 Linux 系统用户更改密码编写应用程序。
这是代码:
shell_exec("/usr/bin/passwd ".$user." <<EOF\n".$password."\n".$password."\nEOF");
它需要所有的空格字符接受“$”
如何在 shell_exec 中传递“$”?
提前致谢。
您可以使用\$
或在单引号中包含您的字符串内容来对其进行转义。因为单引号不会扩展变量
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);
我认为错误与$
符号无关。与您类似的代码对我来说效果很好。
我使用以下内容进行测试:
$msg = "Hello world"; shell_exec("notify-send ".$msg);