我正在尝试为Linux系统用户更改密码编写一个应用程序。
以下是代码:
shell_exec("/usr/bin/passwd ".$user." <<EOF\n".$password."\n".$password."\nEOF");
所有空间字符都接受“$”
如何在shell_exec中传递“$”?
提前致谢。
答案 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);