Autocomplete “]]'附近的分析错误;对于看似有效的zsh条件

Autocomplete “]]'附近的分析错误;对于看似有效的zsh条件,autocomplete,zsh,Autocomplete,Zsh,我刚刚发表了一篇新文章,但有一个难题,我希望这只是我的一个简单错误 一位bug报告员说,当他试图在SUSE上的zsh 5.0.5上调用completion时,他得到了“\u gradle:14:parse error near`]]”,但这段代码在macOS和UbuntuYakkety上的zsh 5.0.8上运行良好 您能在这里看到任何可能导致脚本分析错误的内容吗 _gradle_caching_policy() { [[ ! $(find $1 -mmin -$cache_ttl_min

我刚刚发表了一篇新文章,但有一个难题,我希望这只是我的一个简单错误

一位bug报告员说,当他试图在SUSE上的zsh 5.0.5上调用completion时,他得到了“\u gradle:14:parse error near`]]”,但这段代码在macOS和UbuntuYakkety上的zsh 5.0.8上运行良好

您能在这里看到任何可能导致脚本分析错误的内容吗

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

这里是的和另一个链接到。非常感谢您的指导。

这一定是由于
$1
$cache\u ttl\u mins
的意外值造成的

您可以绕过对
find
的调用,实现与其他
策略检查类似的检查

_gradle_caching_policy() {
    local -a oldp
    oldp=( "$1"(Nmm+${cache_ttl_mins}) )
    (( $#oldp ))
}
看看这是否也会引起错误——它的行为应该是一样的。

这似乎是一个(相对而言)最近修复的错误,因为它可以在
zsh
5.0.5中复制,只需

foo () { [[ bar ]] }
但是,它在
zsh
5.2中工作



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

$1
$cache\u ttl\u mins
在发生解析错误时未展开。我无法重现错误,您确定在展开变量后子shell中没有发生解析错误吗?非常感谢您的响应。我已经要求投稿人升级。