用“!”传递参数重击

时间:2020-04-19 05:53:58

标签: php bash

我想将字符串传递给包含!字符的php脚本。像这样

php cfg.php --name=smtppass --set="MYW!ORD"

但是我得到这个错误

bash: !ORD: event not found

另一方面,如果我通过"MYW\!ORD",则我在查询文件时看到此字符串已设置

smtppass        MYW\!ORD

有什么想法要解决吗?

1 个答案:

答案 0 :(得分:1)

您可以这样传递它:

php cfg.php --name=smtppass --set="MYW"'!'"ORD"

或更懒惰的方法是使用单引号。

php cfg.php --name=smtppass --set='MYW!ORD'

发生这种情况是由于Bash的历史记录扩展(有时非常危险),您可以通过键入set +H来关闭此功能。