']附近的解析错误'看似有效的zsh条件

时间:2017-01-25 03:32:46

标签: autocomplete zsh

我刚刚为Gradle发布了一个新的zsh选项卡完成脚本,但有一个问题让我感到困惑,我希望这只是一个简单的错误。 一个臭虫记者说他得到了" _gradle:14:解析错误附近`]]'"当试图在SUSE上的zsh 5.0.5上调用完成时,但是这个代码在macOS和Ubuntu Yakkety上的zsh 5.0.8上运行正常。 你能在这里看到任何会导致脚本解析错误的东西吗? _gradle_caching_policy(){    [[! $(找$ 1 -mmin - $ cache_ttl_mins 2> / dev / null)]] } 这是完整的问题,也是完成脚本的另一个链接。指导将非常感激。

2 个答案:

答案 0 :(得分:2)

这似乎是一个(相对)最近修复的错误,因为它可以在zsh 5.0.5中复制,其中包含一些简单的内容

foo () { [[ bar ]] }

然而,它适用于zsh 5.2。

更新:重新阅读问题并看到它似乎也在5.0.8中得到修复,我只想告诉记者他需要升级到zsh版本,修复此解析错误。该错误不在您的脚本中。

答案 1 :(得分:0)

这必须归因于$1$cache_ttl_mins的意外值。

您可以绕过对find的调用,并将检查模拟为其他policy_checks

_gradle_caching_policy() {
    local -a oldp
    oldp=( "$1"(Nmm+${cache_ttl_mins}) )
    (( $#oldp ))
}

看看这是否也会引发错误 - 它的行为应该相同。