環境にもよりますが、スタイルが悪いと思います。
Unixライクシステムには、終了ステータス0が成功を示し、ゼロ以外の終了ステータスが失敗を示すという強力な規則があります。すべてではありませんが、一部のプログラムは、異なるゼロ以外の終了コードでさまざまな種類の障害を区別します。たとえばgrep
、通常、パターンが見つかった場合は0、見つからなかった場合は1、見つからないファイルなどのエラーがあった場合は2(またはそれ以上)を返します。
この規則は、Unixシェルにほとんど組み込まれています。例えば、中sh
、bash
およびその他のBourneのようなシェル、if
文の扱い成功/真として0終了ステータス、および故障/偽としてゼロ以外の終了ステータス:
if your-command
then
echo ok
else
echo FAILURE
fi
MS Windowsでの慣習は似ていると思います。
今用途型破りの終了コードという独自のプログラムを書くことからあなたを止めるものは何も他に何もそれと対話するつもりはないが、あなたは十分に確立規約に違反していることに注意して、それがされている場合は特に、確かにありませんでした戻ってきて、後であなたをかみます。
プログラムがこの種の情報を返す通常の方法は、次の場所に出力することstdout
です。
status = $(your-command)
echo Result is $status
set -e
どこかに置いた場合、私のシェルスクリプトのほとんどを壊すでしょう。