“-bash: !D: 在腻子上写命令时找不到事件”

"-bash: !D: event not found" while writing command on putty

我在 putty 上写命令时遇到了一个奇怪的问题。

我想从putty下载数据库。我已使用私钥和密码成功登录。
我已经用这个命令下载数据库了。

mysqldump -u root -pjP+!D) foo > foodump.sql

我收到以下错误。

-bash: !D: event not found.

我原来的密码有这么多特殊字符。 mysqldump 、 ls 等命令工作正常,所以我无法找出其中的问题。

我尝试在终端中使用 WINSCP 和 运行 命令登录,并从 WINSCP 打开 putty。但我运气不好。

尝试在密码字符串两边加上单引号:

$ echo 'jP+!D)'
  jP+!D)

使用单引号,意味着每个特殊字符(' 除外)都按字面解释。

更多信息:http://tldp.org/LDP/abs/html/quotingvar.html