You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

zsh中短横线“-”命令的功能及定义位置咨询

zsh中短横线“-”命令的功能及定义位置咨询

哈哈,这个小细节挺有意思的!我来帮你捋清楚到底是怎么回事~

首先看你在zsh里的操作:

% -

% -

% echo $?
0

输入-后啥反应都没有,但退出状态码是0,这是因为**-是zsh的内置命令**,它的作用就是啥也不做,直接返回成功状态(退出码0),和另一个内置命令:(冒号)功能类似,但zsh单独把-也实现成了空操作内置命令。

你用which和where查不到它,是因为这两个工具默认只搜索系统里的外部可执行文件,而内置命令是shell本身自带的,得用type命令来查:

% type -
- is a shell builtin

这样就能确认它是zsh内置的啦。

再看bash里的情况:

%# -
bash: -: command not found

这是因为bash并没有把-作为内置命令实现,所以它会当成外部命令去查找,自然找不到就报错了。

你检查/bin目录也没找到类似[这种特殊可执行文件,这很正常,因为-根本不是外部程序,就是zsh自己内部实现的一个空操作命令而已。

备注:内容来源于stack exchange,提问作者Ken Williams

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 08:12:58