2024-01-02 07:00:00

返回$?

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


当前回答

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

其他回答

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

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

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

当给定的命令不在PATH系统变量中并且它不是内置的shell命令时,/bin/sh会返回值127。换句话说,系统不理解您的命令,因为它不知道在哪里找到您试图调用的二进制文件。

shell惯例是,一个成功的可执行文件应该以值0退出。其他任何事情都可以解释为bash或您刚刚运行的可执行文件的某些部分出现了某种失败。参见bash手册页的$PIPESTATUS和EXIT STATUS部分:

对于shell而言,退出状态为零的命令已经成功。退出状态 为零表示成功。非零退出状态表示失败。上的命令终止时 致命信号N, bash使用128+N的值作为退出状态。

   If  a command is not found, the child process created to execute it returns a status of 127.  If a com-
   mand is found but is not executable, the return status is 126.

   If a command fails because of an error during expansion or redirection, the exit status is greater than
   zero.

   Shell  builtin  commands  return  a  status of 0 (true) if successful, and non-zero (false) if an error
   occurs while they execute.  All builtins return an exit status of 2 to indicate incorrect usage.

   Bash itself returns the exit status of the last command executed, unless  a  syntax  error  occurs,  in
   which case it exits with a non-zero value.  See also the exit builtin command below.

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

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