You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ACR清理任务执行acr purge命令时出现语法错误求助

问题解答

第一个错误:-bash: !latest: event not found

这是bash基础问题,和Azure CLI无关。bash中!默认是历史扩展符,用于调用之前执行过的命令。当你直接输入!latest时,bash会尝试查找以latest开头的历史命令,找不到就会触发该错误。

解决方法:

  • 用单引号包裹包含!的正则表达式,单引号会屏蔽bash的特殊字符解析:'^(?!latest).*'
  • 或者临时关闭历史扩展:执行set +o histexpand后再运行命令,之后可通过set -o histexpand恢复默认行为。

第二个错误:-bash: syntax error near unexpected token '('

这同样是bash的语法解析问题,不是Azure CLI不支持负向前瞻正则。当使用(?!latest)这类正则语法时,如果未用引号正确包裹,bash会把(当成命令分组的起始符号,从而抛出语法错误。

正确的acr purge命令示例(排除latest标签):

az acr purge --registry <你的ACR名称> --filter '<仓库名>:^(?!latest).*' --ago 7d --yes

核心是用单引号把过滤器表达式整体包裹,避免bash解析其中的特殊字符(!、(、))。

补充说明:Azure CLI的acr purge支持PCRE风格的正则,负向前瞻可以正常使用,只要通过引号规避bash的特殊字符解析即可。

内容的提问来源于stack exchange,提问作者AnjK

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 03:59:50