Показать статистику
0 голосов
от (4.6тыс. баллов)

Я проверяю код завершения команды в bash через $?, например: 

echo "test proverka"

Далее: 

echo $?

И на выводе получаю код 0, что означает "команда успешно отработала". Поняно, что если команда завершилась с ошибкой или если условие не сработало, код будет 1.

Почему в некоторых случаях bash возвращает код 127 ?

1тыс. просмотров 2 ответов

2 Ответы

0 голосов
от (17.4тыс. баллов)

Значение 127 вы получаете если команда не найдена по заданному пути PATH. Например, вы запускаете нечто, чего нет:

blablabla

В ответ вы получите:

-bash: blablabla: command not found

Если проверите код возврата $?, то будет 127.

0 голосов
от (4.5тыс. баллов)

Код 127 возвращается в bash, когда запрошенная команда не найдена. Это означает, что bash не смог найти исполняемый файл команды в путях, указанных в переменной PATH.

Вот пример ситуации, когда bash вернет код 127: 

$ some_non_existent_command
bash: some_non_existent_command: command not found

$ echo $?
127

В этом примере мы пытаемся выполнить команду some_non_existent_command, которая не существует. Bash не смог найти её, и поэтому возвращается код 127 после проверки значения $?.

Если вы столкнулись с кодом 127, убедитесь, что запрашиваемая команда действительно существует и её исполняемый файл находится в одном из каталогов, указанных в переменной PATH. Вы можете проверить содержимое PATH, выполнив команду echo $PATH.

...