127从$?返回代码?

什么是从$返回值127的含义? 在UNIX中。

如果在PATH系统variables中找不到给定的命令,并且它不是内置的shell命令,则返回值127 /bin/sh 。 换句话说,系统不理解你的命令,因为它不知道在哪里find你想要调用的二进制文件。

一般意思是说:

127 – 找不到命令

但也可以表示find该命令,
没有find该命令所需的库。

它没有什么特别的意义,只不过最后退出的程序退出状态是127。

但是,它也被bash(假设你使用bash作为shell)使用,告诉你你试图执行的命令不能执行(即找不到)。 不幸的是,不能立即推论,如果进程退出状态127,或者找不到。

编辑:
除了控制台上的输出外,不能立即推导出来,但这是堆栈溢出,所以我假设你正在脚本中这样做。

一个shell约定是成功的可执行文件应该以0值退出。任何其他的东西都可以被解释为某种types的失败,或者是你刚才运行的可执行文件的一部分。 另请参阅$ PIPESTATUS和bash手册页的EXIT STATUS部分:

  For the shell's purposes, a command which exits with a zero exit status has succeeded. An exit status of zero indicates success. A non-zero exit status indicates failure. When a command terminates on a fatal signal N, bash uses the value of 128+N as the exit status. 
  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. 

127 - command not found

例如:$ caat错误信息会

bash:caat:命令未find

现在你检查使用echo $?

如果您尝试使用脚本语言来运行程序,则可能需要包含脚本语言的完整path要执行的文件。 例如:

 exec('/usr/local/bin/node /usr/local/lib/node_modules/uglifycss/uglifycss in.css > out.css'); 

这个错误也有时候是骗人的。 它说,即使文件确实存在,文件也没有find。 这可能是因为您正在使用的编辑器可能导致文件中存在无效的无法读取的特殊字符。 这个链接可能会帮助你在这种情况下。

-bash:./my_script:/ bin / bash ^ M:错误的解释器:没有这样的文件或目录

找出这个问题的最好方法是简单地在整个文件中放置一个echo语句,并validation是否抛出了相同的错误。