'!A'对perl有意义吗?

aga*_*gal 0 perl command-line-arguments

我试图将命令行参数传递给perl脚本.我写的是:

perl name.pl arg1 !Axxx
Run Code Online (Sandbox Code Playgroud)

在我进入后,它说,

A: event not found
Run Code Online (Sandbox Code Playgroud)

当我按下向上键时,我看到的是,

perl name.pl arg1 xxx
Run Code Online (Sandbox Code Playgroud)

所以,我猜它与'!A'有关.我没有用其他随机字符串代替这个错误!Axxx.'!A'对perl有什么特别意义吗?有没有办法逃脱它?

Pau*_*mer 7

这实际上是bash,而不是perl抱怨.

https://www.gnu.org/software/bash/manual/bashref.html#Event-Designators

如果您需要!作为perl命令行的一部分提交,请使用转义字符告诉bash不要解释元字符:

perl name.pl arg1 \!Axxx
Run Code Online (Sandbox Code Playgroud)