2017-01-25 34 views
1

我刚刚发布了一个新的zsh tab completion script for Gradle,但得到了一个问题的困惑,我希望只是我的一个简单的错误。``]]'解析错误似乎有效的zsh条件

当试图在SUSE上调用zsh 5.0.5上的完成时,他发现“_gradle:14:解析错误”]]'“,但此代码在macOS上的zsh 5.0.8上正常工作和Ubuntu Yakkety。

你能看到任何会导致脚本解析错误的东西吗?

_gradle_caching_policy() { 
    [[ ! $(find $1 -mmin -$cache_ttl_mins 2>/dev/null) ]]                                             
} 

这里的full issue和另一个链接completion script。指导将非常感谢。

回答

2

这似乎是一个(相对)最近修正了,因为它可以在zsh 5.0.5与作为

foo() { [[ bar ]] } 

那样简单,其做一些事情,但是,工作zsh 5.2转载。


更新:重读的问题,看,它似乎固定在5.0.8以及,我只想告诉记者,他需要升级到版本zsh凡本解析错误是固定的。该错误不在您的脚本中。

+0

非常感谢您的回复。我已要求贡献者进行升级。 –

0

这必须是由于意外的值$1$cache_ttl_mins

你可以规避调用find和落实检查模拟其他policy_checks

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

看是否有此引发错误,太 - 它应该具有相同的行为。

+0

在解析错误发生时'$ 1'和'$ cache_ttl_mins'不会被扩展。 – chepner

+0

我不能重现错误,你确定解析错误在扩展变量后没有在子shell中发生吗? –