如何在 bash 4.1.2 中使用“ rm !(*关键字)?

如何在 bash 4.1.2 中使用“ rm !(*关键字)?

我在远程 centos 机器上安装了 bash 4.1.2。

当使用我最喜欢的

rm !(*keyword)

我有

bash: !: event not found

我尝试升级它的 bash,但似乎升级后该版本仍然存在。

相同的代码在我的本地 Ubuntu 机器上的 bash 4.3.11 上运行良好。

如何在这个 Bash 版本(4.1.2)中使用该命令?

答案1

所以我只给出问题的答案。extglob除了历史扩展语法之外,您还需要启用bash 来识别扩展模式。

shopt -s extglob
rm !(*keyword)

shopt -s extglob还启用case和上的扩展模式匹配,[[ ]]但它已经是启动 Bash 4.1 时的默认行为[[ ]],无论启用或不启用该选项,扩展模式都已被识别。

作为参考,请参阅 Bash 手册 模式匹配

相关内容