;;
ネストされたケースの説明では、終了の説明が必要です。
どこかに文書化されていますか?
なぜ次のように動作しないのですか?
#!/bin/ksh
...
esac
;;
print "why here?"
...
しかし、その仕組みは次のとおりです。
#!/bin/ksh
var1="C"
var2=0
case ${var1} in
A) print "A"
;;
B) print "B"
;;
C) print "C"
case $var2 in
0)
print "A B"
;;
1)
print "C"
;;
esac
print "why here?"
;;
*) print ${var1}
;;
esac
ベストアンサー1
;;
別のケースブロック。それでは、シェルが他のものを見つけることを期待するものは何ですか?模様新しいケースブロックを開始するか、問い合わせの終わりをesac
表示します。ではなく、無効です。case
print something
esac
模様そのため、エラーが発生します。ひとりが欲しいなら基本/戻るケースブロック、使用*)
または(*)
:
case $something in
(foo) cmd1
cmd2
;; # end of first block
(bar) cmd3;; # end of second block
(*) cmd4 # default case block
esac # note that the ;; is not required before the esac.
ステートメントがネストcase
されたかどうかは関係ありません。