• ベストアンサー

exitコマンドの後の変数について(シェル)

シェルをはじめたばかりの初心者です。 以下のようなシェルがあります。exit後のexit_cancelという変数は何に使われるのでしょうか? exitしてしまえばシェルは終了してしまうので exit_cancelという変数は関係ない気もするのですが・・・ ちなみにexit_cancelという変数はシェル内には どこにも定義していません。 どなたか教えて頂けないでしょうか? 何卒よろしくお願い致します。 case "${opt_exec}" in "z") ;;  *)     print -n "本当によろしいですか?[y/n] =>"     read REPLY   if [[ ${REPLY} != "y" ]] then echo "処理を中止します。" exit ${exit_cancel}        fi esac

質問者が選んだベストアンサー

  • ベストアンサー
  • shige_70
  • ベストアンサー率17% (168/946)
回答No.2

$exit_cancel が未定義であれば、exitの後ろに何も書かなかったのと同じです。 exitは通常、ひとつの数字のパラメータを取ることが出来ます。それは終了コードとして呼び出し元に引き渡されます。指定しなければ 0 が渡されます。 本当に定義されていないかどうかは、画面に表示してみれば分かりますよ。適当な場所に echo ${exit_cancel} と入れてから実行してみましょう。 スクリプトないに定義されていないのに値が入っている場合は、 ・ 環境変数である ・ ソースしたファイルで定義されている のどちらかが考えられます。 ソースというのは、別ファイルを取り込みます。(C言語の #include に相当するものです) . ファイル名 の形式で記述します。 ですから、スクリプトのどこかに、たとえば . xxx.sh というのが書いてあれば、そこで xxx.sh の内容を実行するわけです。もし xxx.sh の中にたとえば exit_cancel=-1 と書いてあったとすれば、元のスクリプトの中でも exit_cancel には -1 が入ることになります。

milki
質問者

お礼

詳しいご解説ありがとうございます。 とっても分かりやすかったです。 全然ポイントをはずしていたようで、 まったく違ったところを調べていました。(とほほ) シェルの調べ方なども分かりました。 本当にありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

bash の man は見ましたか? exit 数値 で「数値」を終了ステータスとするって書いてありますよ. ちなみに.... 「シェルスクリプト」を「シェル」と省略するのはいかがなものかと.

milki
質問者

お礼

exitのmanを見るんですね。 まったくポイントをはずしていました… ご返信ありがとうございました。

すると、全ての回答が全文表示されます。