Онлайн-рабочие станции OnWorks Linux и Windows

Логотип

Бесплатный хостинг в Интернете для рабочих станций

<Предыдущая | Содержание: | Следующая>

Статус выхода

Команды (включая сценарии и функции оболочки, которые мы пишем) при завершении работы выдают системе значение, называемое статус выхода. Это значение, представляющее собой целое число в диапазоне от 0 до 255, указывает на успешное или неудачное выполнение команды. По соглашению, нулевое значение указывает на успех, а любое другое значение указывает на неудачу. Оболочка предоставляет параметр, который мы можем использовать для проверки статуса выхода. Здесь мы видим это в действии:



[я @ linuxbox ~] $ ls -d / usr / bin

/ USR / бен

[я @ linuxbox ~] $ эхо $?

0

[я @ linuxbox ~] $ ls -d / bin / usr

ls: нет доступа к / bin / usr: нет такого файла или каталога [me @ linuxbox ~] $ эхо $?

2

[я @ linuxbox ~] $ ls -d / usr / bin

/ USR / бен

[я @ linuxbox ~] $ эхо $?

0

[я @ linuxbox ~] $ ls -d / bin / usr

ls: нет доступа к / bin / usr: нет такого файла или каталога [me @ linuxbox ~] $ эхо $?

2

Статус выхода


В этом примере мы выполняем ls команду дважды. В первый раз команда выполняется успешно. Если мы отобразим значение параметра $?, мы видим, что он равен нулю. Мы выполняем ls команду второй раз (указав несуществующий каталог), выдающую ошибку, и проверьте параметр $? опять таки. На этот раз он содержит 2, что означает, что команда обнаружила ошибку. Некоторые команды используют разные значения статуса выхода для диагностики ошибок, в то время как многие команды просто завершают работу со значением, равным единице, когда они терпят неудачу. Страницы руководства часто включают раздел под названием «Статус выхода», описывающий, какие коды используются. Однако ноль всегда означает успех.

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


[я @ linuxbox ~] $ правда [я @ linuxbox ~] $ эхо $? 0

[я @ linuxbox ~] $ ложный [я @ linuxbox ~] $ эхо $? 1

[я @ linuxbox ~] $ правда [я @ linuxbox ~] $ эхо $? 0

[я @ linuxbox ~] $ ложный [я @ linuxbox ~] $ эхо $? 1


Мы можем использовать эти команды, чтобы увидеть, как if заявление работает. Что за if оператор действительно оценивает успех или неудачу команд:



[я @ linuxbox ~] $ если правда; затем эхо «Это правда.»; фи

Это правда.

[я @ linuxbox ~] $ если ложь; затем эхо «Это правда.»; фи

[я @ linuxbox ~] $

[я @ linuxbox ~] $ если правда; затем эхо «Это правда.»; фи

Это правда.

[я @ linuxbox ~] $ если ложь; затем эхо «Это правда.»; фи

[я @ linuxbox ~] $


Команда echo "Это правда." выполняется, когда следующая команда if выполняется успешно и не выполняется, если следующая команда if не выполняется успешно. Если следует список команд if, выполняется последняя команда в списке:


[me @ linuxbox ~] $, если ложь; правда; затем эхо «Это правда»; fi Это правда.

[me @ linuxbox ~] $, если правда; ложный; затем эхо «Это правда»; fi [меня @ linuxbox ~] $

[me @ linuxbox ~] $, если ложь; правда; затем эхо «Это правда»; fi Это правда.

[me @ linuxbox ~] $, если правда; ложный; затем эхо «Это правда»; fi [меня @ linuxbox ~] $


Лучшие облачные вычисления для ОС в OnWorks: