Онлайн робочі станції OnWorks Linux та Windows

логотип

Безкоштовний онлайн-хостинг для робочих станцій

<Попередній | зміст | Наступна>

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

Команди (включаючи сценарії та функції оболонки, які ми пишемо) видають системі значення, коли вони завершуються, називається статус виходу. Це значення, яке є цілим числом у діапазоні від 0 до 255, вказує на успішне або невдале виконання команди. За умовою, нульове значення вказує на успіх, а будь-яке інше значення вказує на невдачу. Оболонка надає параметр, який ми можемо використовувати для перевірки стану виходу. Ось ми бачимо це в дії:



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

/ usr / bin

[me@linuxbox ~]$ echo $?

0

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

ls: не вдається отримати доступ до /bin/usr: немає такого файлу чи каталогу [me@linuxbox ~]$ echo $?

2

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

/ usr / bin

[me@linuxbox ~]$ echo $?

0

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

ls: не вдається отримати доступ до /bin/usr: немає такого файлу чи каталогу [me@linuxbox ~]$ echo $?

2

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


У цьому прикладі ми виконуємо ls команда двічі. У перший раз команда виконується успішно. Якщо ми виведемо значення параметра $?, ми бачимо, що воно дорівнює нулю. Виконуємо ls команда вдруге (вказуючи неіснуючий каталог) , викликаючи помилку, і перевірте параметр $? знову. Цього разу він містить 2, що вказує на те, що команда виявила помилку. Деякі команди використовують різні значення статусу виходу, щоб забезпечити діагностику помилок, тоді як багато команд просто виходять зі значенням одиниці, коли вони не вдаються. Довідкові сторінки часто містять розділ під назвою «Статус виходу», який описує, які коди використовуються. Однак нуль завжди вказує на успіх.

Оболонка надає дві надзвичайно прості вбудовані команди, які нічого не роблять, крім завершення з нульовим або одним статусом виходу. The правда Команда завжди виконується успішно і false команда завжди виконується невдало:


[me@linuxbox ~]$ правда [me@linuxbox ~]$ echo $? 0

[me@linuxbox ~]$ false [me@linuxbox ~]$ echo $? 1

[me@linuxbox ~]$ правда [me@linuxbox ~]$ echo $? 0

[me@linuxbox ~]$ false [me@linuxbox ~]$ echo $? 1


Ми можемо використовувати ці команди, щоб побачити, як if заява працює. Що за if оператор дійсно оцінює успіх або невдачу команд:



[me@linuxbox ~]$ якщо правда; потім луна «Це правда.»; fi

Це правда.

[me@linuxbox ~]$ якщо помилка; потім луна «Це правда.»; fi

[me@linuxbox ~]$

[me@linuxbox ~]$ якщо правда; потім луна «Це правда.»; fi

Це правда.

[me@linuxbox ~]$ якщо помилка; потім луна «Це правда.»; fi

[me@linuxbox ~]$


Команда echo «Це правда». виконується, коли наступна команда if виконується успішно і не виконується, коли виконується наступна команда if не виконується успішно. Якщо нижче наведено список команд if, оцінюється остання команда у списку:


[me@linuxbox ~]$, якщо false; правда; потім луна «Це правда.»; fi Це правда.

[me@linuxbox ~]$, якщо правда; помилковий; потім луна «Це правда.»; fi [me@linuxbox ~]$

[me@linuxbox ~]$, якщо false; правда; потім луна «Це правда.»; fi Це правда.

[me@linuxbox ~]$, якщо правда; помилковий; потім луна «Це правда.»; fi [me@linuxbox ~]$


Найпопулярніші хмарні обчислення ОС на OnWorks: