2024-01-02 07:00:00

返回$?

从$返回值127是什么意思?在UNIX中。


当前回答

127 -命令未找到

例子:$ caat 错误消息将

bash:

Caat:命令未找到

现在使用echo $?

其他回答

如果IBM大型机JCL在被调用的unix脚本的名称后面有一些额外的字符或数字,那么它就会抛出这样的错误。

它没有特殊的含义,只是最后一个要退出的进程的退出状态是127。

然而,bash也使用它(假设您将bash用作shell)来告诉您尝试执行的命令无法执行(即无法找到它)。不幸的是,如果进程以状态127退出,或者如果它找不到,则不能立即推断。

编辑: 不能立即推断,除了控制台的输出,但这是堆栈溢出,所以我假设您在脚本中执行此操作。

127 -命令未找到

例子:$ caat 错误消息将

bash:

Caat:命令未找到

现在使用echo $?

除了给出的答案之外,请注意,如果您使用/bin/sh作为shell,那么运行带有错误行尾字符的脚本文件还可能导致127个退出码。

例如,如果你在基于unix的系统和/bin/sh shell中运行一个带有CRLF行尾字符的shell脚本,那么在运行名为my_test.sh的脚本后,可能会遇到如下错误:

$ ./my_test.sh
sh: 2: ./my_test.sh: not found
$ echo $?
127

注意,使用/bin/bash,我得到了126退出码,这与gnu.org关于bash的文档一致:

如果没有找到某个命令,为执行该命令而创建的子进程将返回127的状态。如果找到了不能执行的命令,则返回状态为126。

最后,下面是在/bin/bash中运行脚本的结果:

arman@Debian-1100:~$ ./my_test.sh
-bash: ./my_test.sh: /bin/bash^M: bad interpreter: No such file or directory
arman@Debian-1100:~$ echo $?
126

请登录C:\Program Files\Git\etc 用记事本打开gitconfig 改变 (核心) 独裁者= true 来 (核心) 独裁者= false