为什么zsh可执行无空格的组合git别名,bash却提示命令不存在?
问题原因
这个差异和两类Shell的默认能力、你使用的zsh配置有关,核心原因如下:
- 最常见的情况:你使用的zsh配置框架(比如Oh My Zsh)默认开启了git插件,该插件预定义了
alias gst='git status'的全局别名,和你自行配置的g别名、git侧的st别名没有关联,属于刚好匹配你需求的巧合。你可以在zsh终端执行alias gst验证,如果输出gst='git status'的结果,就属于该情况。 - 少见情况:你自行配置了zsh的无空格别名解析规则,这类自定义规则会自动将单字符命令别名和后续的子命令别名做拼接识别,不过该能力不是zsh默认提供的,需要手动修改配置才能实现。
bash本身不支持上述两类能力,也没有预定义gst别名,因此执行时会提示命令不存在。
内容的提问来源于stack exchange,提问作者Brian
相关产品推荐
相关产品推荐

