我正在尝试编写一个脚本来更改多个服务器上的密码。问题是密码有特殊字符。这是我正在使用的echo命令的示例:
echo -e "'P#7g$dkW$8Ej$5$%'\n'P#7g$dkW$8Ej$5$%'"
以下是回复:
[root@myserver ~]# echo -e "'P#7g$dkW$8Ej$5$%'\n'P#7g$dkW$8Ej$5$%'"
'P#7gEj$%'
'P#7gEj$%'
正如你所看到的那样,它会丢掉很多角色。任何建议都会有所帮助。
答案 0 :(得分:0)
您的字符串被解释的原因是您使用双引号来创建字符串。您之后设置的单引号将被解释为字符串的一部分,并且不再具有特殊含义,也不会使您的密码成为文字字符串。这意味着密码字符串仍然在“”范围内,$ xyz将被解释为xyz变量。
你可以试着像这样连接它们
passwd1='password1'
passwd2='password2'
echo -e "$passwd1\n$passwd2"
或者在解决方案中省略双引号。
答案 1 :(得分:0)
取出双引号,只使用单引号,以便不扩展变量(前面有$
)。