BASH Программирование

Bash Код выхода последней команды

Bash Код выхода последней команды
Когда выполняется команда bash, она оставляет после себя код выхода, независимо от успешного или неудачного выполнения. Изучение кода выхода может дать полезную информацию о поведении последней выполненной команды.

В этом руководстве вы узнаете, как проверить код выхода последней команды bash и некоторые возможные варианты ее использования.

Код выхода из Bash

Каждая команда UNIX / Linux, выполняемая сценарием оболочки или пользователем, оставляет статус выхода. Это целое число, которое остается неизменным, пока не будет запущена следующая команда. Если код выхода равен 0, значит, команда выполнена успешно. Если код выхода не равен нулю (1-255), это означает ошибку.

Есть много потенциальных вариантов использования кода выхода из bash. Самым очевидным из них, конечно же, является проверка правильности выполнения последней команды, особенно если команда не генерирует никаких выходных данных.

В случае bash код выхода предыдущей команды доступен с помощью переменной оболочки “$?”.

Проверка кода выхода из Bash

Запустите терминал и выполните любую команду.

$ дата

Проверьте значение переменной оболочки «$?”Для кода выхода.

$ echo $?

Поскольку команда «date» выполнена успешно, код выхода равен 0. Что было бы, если бы произошла ошибка?

Попробуем запустить команду, которой не существует.

$ abcd

Проверить код выхода.

$ echo $?

Это ненулевое значение, указывающее на то, что предыдущая команда не выполнялась должным образом.

Теперь взгляните на следующую команду:

$ cat образец.txt | grep «монета»

При работе с командой, имеющей один или несколько каналов, код выхода будет последним кодом, выполненным в канале. В данном случае это команда grep.

Поскольку команда grep была успешной, она будет равна 0.

$ echo $?

В этом примере, если команда grep завершилась неудачно, код выхода будет отличным от нуля.

$ cat образец.txt | grep «abcd»
$ echo $?

Включение кода выхода в скрипты

Код выхода также можно использовать для написания скриптов. Один простой способ использовать его - назначить его переменной оболочки и работать с ней. Вот пример сценария оболочки, который использует код выхода в качестве условия для печати определенного вывода.

$ #!/ bin / bash
$ echo "привет, мир"
$ status = $?
$ [$ status -eq 0] && echo "команда выполнена успешно" || echo "команда не выполнена"

При запуске скрипт выдаст следующий вывод.

Теперь давайте посмотрим, что произойдет, если будет запущена недопустимая команда.

$ #!/ bin / bash
$ random-command
$ status = $?
$ [$ status -eq 0] && echo "команда выполнена успешно" || echo "команда не выполнена"

При запуске вывод будет другим.

Код выхода Значение Описание

Когда код выхода не равен нулю, значение варьируется от 1 до 255. Теперь, что означает это значение?

Хотя значение ограничено, объяснение каждого значения уникально для программы / сценария. Например, «ls» и «grep» по-разному объясняют коды ошибок 1 и 2.

$ man ls

$ man grep

Определение статуса выхода в скрипте

При написании скрипта мы можем определить пользовательские значения кода выхода. Это полезный метод для упрощения отладки. В сценариях bash это команда «exit», за которой следует значение кода выхода.

$ exit

Согласно соглашению, рекомендуется присвоить код выхода 0 для успешного выполнения и использовать остальные (1-255) для возможных ошибок. При достижении команды выхода выполнение сценария оболочки будет прекращено, поэтому будьте осторожны с его размещением.

Взгляните на следующий сценарий оболочки. Здесь, если условие выполнено, скрипт завершится с кодом выхода 0. Если условие не выполняется, код выхода будет 1.

$ #!/ bin / bash
$ if [["$ (whoami)" != корень]]; тогда
$ echo "Пользователь не root."
$ exit 1
$ fi
$ echo "пользователь root"
$ exit 0

Проверьте результат выполнения этого сценария без привилегий sudo или пользователя «root».

$ ./образец.ш
$ echo $?

Последние мысли

В этом руководстве показано, что такое коды выхода и как их использовать. Он также демонстрирует, как назначить соответствующие коды выхода в сценарии bash.

Заинтересованы в сценариях bash? Один из самых простых способов начать - написать свои собственные скрипты. Ознакомьтесь с этим простым руководством о том, как написать простой сценарий bash.

Удачных вычислений!

Как использовать AutoKey для автоматизации игр под Linux
AutoKey - это утилита автоматизации рабочего стола для Linux и X11, запрограммированная на Python 3, GTK и Qt. Используя его функции сценариев и MACRO...
Как показать счетчик FPS в играх для Linux
Игры для Linux получили серьезный толчок, когда Valve объявила о поддержке Linux для клиента Steam и своих игр в 2012 году. С тех пор многие игры AAA ...
Как загрузить и играть в Sid Meier's Civilization VI в Linux
Введение в игру Civilization 6 - это современный подход к классической концепции, представленной в серии игр Age of Empires. Идея была довольно просто...