Itu tergantung pada lingkungan, tapi saya akan mengatakan itu gaya yang buruk.
Sistem seperti Unix memiliki konvensi yang kuat bahwa status keluar 0 menunjukkan keberhasilan, dan status keluar non-nol menunjukkan kegagalan. Beberapa, tetapi tidak semua, program membedakan antara berbagai jenis kegagalan dengan kode keluar yang tidak nol; sebagai contohgrep
biasanya mengembalikan 0 jika pola ditemukan, 1 jika tidak, dan 2 (atau lebih) jika ada kesalahan seperti file yang hilang.
Konvensi ini cukup sulit ditransfer ke kerang Unix. Misalnya, dalam sh
,, bash
dan shell mirip Bourne lainnya, if
pernyataan tersebut memperlakukan status keluar 0 sebagai berhasil / benar, dan status keluar bukan nol sebagai kegagalan / salah:
if your-command
then
echo ok
else
echo FAILURE
fi
Saya percaya konvensi di bawah MS Windows serupa.
Sekarang tentu saja tidak ada yang menghentikan Anda dari menulis program Anda sendiri yang menggunakan kode keluar yang tidak konvensional, terutama jika tidak ada hal lain yang akan berinteraksi dengannya, tetapi perlu diketahui bahwa Anda melanggar konvensi yang mapan, dan itu bisa kembali dan menggigit Anda nanti .
Cara yang biasa bagi suatu program untuk mengembalikan informasi semacam ini adalah dengan mencetaknya ke stdout
:
status = $(your-command)
echo Result is $status
set -e
tempat.