В чем смысл возвращаемого значения 127 из $? в UNIX.
127 Код возврата от $?
Ответ 1
Значение 127 возвращается /bin/sh
, когда данная команда не найдена в вашей системной переменной PATH
, и она не является встроенной командой оболочки. Другими словами, система не понимает вашу команду, потому что она не знает, где найти бинарный код, который вы пытаетесь вызвать.
Ответ 2
Обычно это означает:
127 - команда не найдена
но это также означает, что команда найдена,
но библиотека, требуемая командой , не найдена.
Ответ 3
127 - command not found
пример: $ caat Сообщение об ошибке будет
Баш:
caat: команда не найдена
теперь вы проверяете с помощью echo $?
Ответ 4
Соглашение оболочки состоит в том, что успешный исполняемый файл должен выйти со значением 0. Любое другое может быть интерпретировано как сбой какого-то рода, на части bash или исполняемый файл, который вы только что запустили. См. Также $PIPESTATUS и EXIT STATUS раздела справочной страницы bash:
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.
Ответ 5
Он не имеет особого значения, кроме того, что последний процесс для выхода сделал это с статусом выхода 127.
Однако он также используется bash (если вы используете bash в качестве оболочки), чтобы сказать вам, что команда, которую вы пытались выполнить, не может быть выполнена (т.е. ее не удалось найти), Это, к сожалению, не сразу выводимо, хотя, если процесс завершился со статусом 127, или если он не смог найти.
EDIT:
Не сразу выводимый, за исключением вывода на консоли, но это переполнение стека, поэтому я предполагаю, что вы делаете это в script.
Ответ 6
Если вы пытаетесь запустить программу с использованием языка сценариев, вам может потребоваться включить полный путь к языку сценариев и к исполняемому файлу. Например:
exec('/usr/local/bin/node /usr/local/lib/node_modules/uglifycss/uglifycss in.css > out.css');
Ответ 7
Эта ошибка также время от времени обманывает. Он говорит, что файл не найден, даже если файлы действительно присутствуют. Это может быть из-за недопустимых нечитаемых специальных символов, присутствующих в файлах, которые могут быть вызваны используемым редактором. Эта ссылка может помочь вам в таких случаях.
- bash:./my_script:/bin/bash ^ M: плохой интерпретатор: нет такого файла или каталога
Лучший способ узнать, является ли это этой проблемой, - это просто разместить инструкцию echo во всем файле и проверить, не была ли выбрана одна и та же ошибка.
Ответ 8
Если в конце имени вызываемого сценария Unix в JCL мэйнфрейма IBM есть несколько дополнительных символов или цифр, он может выдать такую ошибку.