Nó phụ thuộc vào môi trường, nhưng tôi muốn nói rằng đó là phong cách kém.
Các hệ thống giống như Unix có một quy ước mạnh mẽ rằng trạng thái thoát là 0 biểu thị thành công và bất kỳ trạng thái thoát khác không nào cũng biểu thị sự thất bại. Một số, nhưng không phải tất cả, các chương trình phân biệt giữa các loại lỗi khác nhau với các mã thoát khác không; ví dụ grep
thường trả về 0 nếu mẫu được tìm thấy, 1 nếu không và 2 (hoặc nhiều hơn) nếu có lỗi như tệp bị thiếu.
Quy ước này có khá nhiều dây cứng vào vỏ Unix. Ví dụ: trong sh
, bash
và các shell giống như Bourne khác, if
câu lệnh coi trạng thái thoát 0 là thành công / đúng và trạng thái thoát không bằng 0 là fail / false:
if your-command
then
echo ok
else
echo FAILURE
fi
Tôi tin rằng các quy ước trong MS Windows là tương tự nhau.
Bây giờ chắc chắn không có gì ngăn bạn viết chương trình của riêng bạn sử dụng mã thoát độc đáo, đặc biệt là nếu không có gì khác sẽ tương tác với nó, nhưng lưu ý rằng bạn đang vi phạm một quy ước được thiết lập tốt, và nó có thể quay lại và cắn bạn sau .
Cách thông thường để một chương trình trả về loại thông tin này là in nó ra stdout
:
status = $(your-command)
echo Result is $status
set -e
ở đâu đó.