分配问题:
在终端中执行“good”和“ls”并检查执行状态
我做了什么
good;$?
输出:
zsh: command not found: good
zsh: command not found: 127
ls;$?
输出:
quiz.sh
zsh: command not found: 0
如果此命令存在,那么为什么我会收到“ls”未找到命令?
答案1
您没有收到“未找到命令”的信息ls
。您可以在那里看到输出ls
。你得到command not found
了0
,这就是$?
扩展到。
$?
是上一个命令的状态。运行后ls
,状态为0,因为没有错误。运行后good
,状态为 127,这是 shell 在未找到命令时使用的状态。
如果你想显示状态,你需要告诉 shell 你想要做的就是显示它。这正是该echo
命令的用途。
good; echo $?
ls; echo $?
答案2
$?
是上一个命令的返回码。如果你想看它,你需要echo $?
。它通常用在if
语句中(0
遗憾的是,where = true)。