执行rake命令时无法理解zsh错误

6
当我执行%rake college:create[demo]时,我收到以下错误信息:
zsh: no matches found: college:create[demo]

有人有这个问题的解决方案吗?

当我执行rake -T时,作为输出的一行,我得到了以下内容:

rake college:create[config_name]            # create a college profile

所以,这是一个有效的命令,但仍然会导致zsh显示错误。
4个回答

28

尝试使用以下代码:

rake college:create\[demo\]

11

你也可以使用 noglob

noglob rake college:create[demo]

或者在你的.zshrc文件中给它起一个别名

alias rake='noglob rake'

你知道在使用zsh的bundle插件时,当仅有别名不足以解决问题时该怎么办吗? - Ron
抱歉,明白了:alias rake="noglob bundled_rake" - Ron

7
"

zsh试图将您的命令解释为通配符文件规范。 college:create[demo]将扩展为与以下列表中之一匹配的现有文件:

"
college:created
college:createe
college:createm
college:createo

这个页面展示了zsh执行通配符的一些示例,本例中的具体示例是:

  • [123]指定符,表示任何字符1、2或3。

您需要转义参数,以便zsh不认为您正在给它一个通配符,例如:

rake 'college:create[demo]'

zshexpn手册详细展示了命令行中的所有扩展。搜索文件名生成以获取xyzzy[demo]样式的生成方式。


谢谢!我不知道zsh将“:”解释为通配符:-) - aash
1
@user966265 不是 :,而是方括号被解释为通配符;在几个替换中冒号具有特殊含义:http://zsh.sourceforge.net/Guide/zshguide05.html(搜索“colon”)。 - Tom Regner

0

如果您正在通过bundle exec或从bin/目录使用rake,请将以下内容添加到您的.zshrc文件中:

alias bin/rake='noglob rake'
# or 
alias rake="noglob bundled_rake

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接