プロが教える店舗&オフィスのセキュリティ対策術

シェルスクリプトの下記ソースに間違いはないですか?
最後のesacの次に改行は必要ですか?

#!/bin/sh
echo teststart
i=2
case $i in
1)
echo "a"
;;
2)
echo "b"
;;
*)
echo "c"
;;
esac

A 回答 (3件)

もしかすると、数値型と文字型を比較しようとしている為だと思います。



$iを"$i"とすれば通ると思います。
    • good
    • 0

エラーが出たんですか?


私はsdvsさんのスクリプトをコピペしたら普通に動きましたが。

自信ゼロですけどとりあえず回答。

エラーメッセージからすると in が悪さをしてるみたいですね。
in の後の改行文字がなんか変なのかな...。

ためしに case $i in の行を消して
もう一回書き直してみてはどうでしょう。
(そしたらよくわからないけど動いたって経験を何回かしているもので)

もしくは、
i=0
の次の行に
export i
を追加してみるとか。
(これは関係なさそうですけど)
    • good
    • 0

間違いないと思います。



esacの次はとりあえず改行しとけば良いんじゃないでしょうか。

この回答への補足

ありがとうございます。
なぜかエラーなんです。
ソースのエラーではなく、設定でしょうか?

[root@xx my_test]# sh test.sh
'test.sh: line 4: syntax error near unexpected token `in
'test.sh: line 4: `case $i in
[root@xx my_test]#

補足日時:2004/01/08 23:08
    • good
    • 0

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