我在 zsh 中运行此命令时遇到问题:
my_command -u something -s X:^0
该命令在 tcsh 上立即起作用,但在 zsh 上我得到:
zsh: no matches found -s X:^0
这让我想知道这是否^
是罪魁祸首。据我了解,sX:^0
参数的值是参数的值-s
,但 zsh 似乎扩展了它,而不是my_command
像 tcsh 那样将其传递给它。
我的理解正确吗?如果是这样,我如何在 zsh 中运行相同的命令?
答案1
extendedglob
在 zsh 中,enabled是^
一个否定通配符,所以-sX:^0
意味着任何以-sX:
以下字符开头的文件名0
。
如果您不希望将其解释为通配符,则需要引用它(如'-sX:^0'
or -sX:\^0
or ...)。-s"X:^0"
请注意,在 Bourne shell 及其前身中,^
也是管道运算符也需要引用。