Linux Mint    Ubuntu    openSUSE    Asterisk    FreeBSD    Android    Nokia N900    Игры в Linux
 Linux Mint    Ubuntu     openSUSE     Asterisk     FreeBSD     Android     N900     Games

Изучаем Bash: Команда exit - завершение и возвращаемое значение

Доброго времени суток уважаеммые читатели! Сегодня мы поговорим про команду exit, что она из себя представляет и рассмотрим некоторые примеры.

Команда exit может выполянть две функции:

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

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

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

Можно и вручную указать код завершения, синтаксис будет следующим:

exit xxx

xxx - любое значение от 0 до 255.

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

Теперь я приведу пример, для наглядного представления написанного:

#!/bin/bash

ls     # выполнится команда ls

echo $?    # На экран выведится результат команды ls и число 0, потому что команда ls выполнилась успешно

Следующий пример:

#!/bin/bash

dfdf     # Просто набор букв, не представляющий никакой команды

echo $?     # Попытается исполнить "dfdf" и выдаст число отличное от 0, потому что это не команды и соответственно выполнить ее не удалось

Еще один пример:

#!/bin/bash

ls     # Выполнится команда ls

exit 15     # Задал код возврата 15, можно задать любое от 0 до 255

После того, как вы выполните данный скрипт, введите в терминале:

$?

и вы получите значение 15, которое мы и задали принудительно для exit.

Вот такой принцип! :)

Вопросы? :)

jekson аватар

пожалуйста )

Linux_man аватар

случайно не с Иркутска? на какой сайт? на http://linsoft.info? на этом сайте есть линк на нас, в частности тут: http://linsoft.info/soft/opennebula.html и ваш профиль там тоже есть ;)

Linux_man аватар

в последнем скрипте?