Це залежить від оточення, але я б сказав, що це поганий стиль.
У Unix-подібних системах є чітка конвенція, що статус виходу 0 позначає успіх, а будь-який ненульовий статус виходу позначає збій. Деякі програми, але не всі програми, розрізняють різного роду збої з різними ненульовими кодами виходу; наприклад, grep
зазвичай повертає 0, якщо шаблон знайдено, 1, якщо його не було, і 2 (або більше), якщо сталася помилка, наприклад, файл, що відсутній.
Ця конвенція досить сильно з'єднана з оболонками Unix. Наприклад, у sh
, bash
та інших оболонках, подібних до Борна, if
оператор вважає статус виходу 0 0 успішним / істинним, а ненульовий статус виходу як відмовою / помилкою:
if your-command
then
echo ok
else
echo FAILURE
fi
Я вважаю, що умови в MS Windows схожі.
Тепер, звичайно, ніщо не заважає вам написати власну програму, яка використовує нетрадиційні коди виходу, особливо якщо з нею нічого іншого не буде взаємодіяти, але майте на увазі, що ви порушуєте добре встановлену конвенцію, і вона може повернутися і кусати вас пізніше .
Звичайний спосіб повернення програми такої інформації - це друк її на stdout
:
status = $(your-command)
echo Result is $status
set -e
кудись поклав .