電子書籍の厳選無料作品が豊富!

シェルをはじめたばかりの初心者です。

以下のようなシェルがあります。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

A 回答 (2件)

$exit_cancel が未定義であれば、exitの後ろに何も書かなかったのと同じです。



exitは通常、ひとつの数字のパラメータを取ることが出来ます。それは終了コードとして呼び出し元に引き渡されます。指定しなければ 0 が渡されます。

本当に定義されていないかどうかは、画面に表示してみれば分かりますよ。適当な場所に
echo ${exit_cancel}
と入れてから実行してみましょう。

スクリプトないに定義されていないのに値が入っている場合は、
・ 環境変数である
・ ソースしたファイルで定義されている
のどちらかが考えられます。
ソースというのは、別ファイルを取り込みます。(C言語の #include に相当するものです)
. ファイル名
の形式で記述します。
ですから、スクリプトのどこかに、たとえば
. xxx.sh
というのが書いてあれば、そこで xxx.sh の内容を実行するわけです。もし xxx.sh の中にたとえば
exit_cancel=-1
と書いてあったとすれば、元のスクリプトの中でも exit_cancel には -1 が入ることになります。
    • good
    • 0
この回答へのお礼

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

本当にありがとうございました。

お礼日時:2004/12/07 22:03

bash の man は見ましたか?



exit 数値

で「数値」を終了ステータスとするって書いてありますよ.

ちなみに....
「シェルスクリプト」を「シェル」と省略するのはいかがなものかと.
    • good
    • 0
この回答へのお礼

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

お礼日時:2004/12/07 22:04

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!