127 Кодов возврата от $?

269
задан Sachin Chourasiya 19 November 2009 в 03:05
поделиться

3 ответа

Значение 127 возвращается / bin / sh , когда данная команда не найдена в вашей системной переменной PATH и не является встроенной в команде оболочки. Другими словами, система не понимает вашу команду, потому что не знает, где найти двоичный файл, который вы пытаетесь вызвать.

398
ответ дан 23 November 2019 в 02:19
поделиться

Соглашение оболочки заключается в том, что успешный исполняемый файл должен завершаться со значением 0. Все остальное может быть интерпретировано как какой-либо сбой на части bash или исполняемый файл, который вы только что запустили. См. Также раздел $ PIPESTATUS и СТАТУС ВЫХОДА на странице руководства bash:

  Для целей оболочки команда, которая завершается с нулевым статусом завершения, выполнена успешно. Статус выхода
нуля указывает на успех. Ненулевой статус выхода указывает на сбой. Когда команда завершается на
 фатальный сигнал 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.
9
ответ дан 23 November 2019 в 02:19
поделиться

Это не имеет особого значения, кроме того, что последний процесс для выхода сделал это со статусом выхода 127.

Однако он также используется bash (при условии, что вы используете bash в качестве оболочки), чтобы сообщить вам, что команда, которую вы пытались выполнить, не может быть выполнена (т. е. не может быть найдена). К сожалению, это не сразу выводится, если процесс завершился со статусом 127 или не смог найти.

РЕДАКТИРОВАТЬ:
Не сразу выводится, за исключением вывода на консоль, но это переполнение стека, поэтому я предполагаю, что вы делаете это в сценарии.

8
ответ дан 23 November 2019 в 02:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: