如何去掉密码里的“!”?

如何去掉密码里的“!”?

如何避免密码中的感叹号:

$ mysql -umyuser -pone_@&!two
-bash: !two: event not found

尝试明显的反斜杠并没有帮助:

$ mysql -umyuser -pone_@&\!two
[1] 22242
-bash: !two: command not found
[email protected] [~]# ERROR 1045 (28000): Access denied for user 'myuser'@'localhost' (using password: YES)

我所有的谷歌搜索都表明反斜杠会有所帮助,但事实并非如此。没有办法像这个问题。该行将在 .bashrc 别名中使用。别担心,此处显示的用户名和密码仅为示例,不会在生产中使用!

答案1

使用单引号将密码括起来,如下所示:-p'one_@&!two'

要将其放入别名中,您可以执行以下操作:

alias runmysql='mysql -umyuser -p'\''one_@&!two'\'''

答案2

-bash: !two: command not found

您还需要转义该&字符:

$ mysql -umyuser -pone_@\&\!two

答案3

如果您从未使用过 ! 历史功能,那么禁用它们可能会更方便(在set +H您的 bashrc 中)。

答案4

您可以将密码存储在 bash 变量中:

$ pass='one_@&!two'

然后在命令中替换变量:

$ mysql -umyuser -p$pass

相关内容