tcsh 与 zsh。转义/控制字符

tcsh 与 zsh。转义/控制字符

我在 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:\^0or ...)。-s"X:^0"

请注意,在 Bourne shell 及其前身中,^也是管道运算符也需要引用。

相关内容