あなたの習慣について教えてください!!

Kシェルでgotoのような処理を作成したい。

以下のような処理で、入力した文字が条件と一致しなかった場合、
再度、入力からやり直させるようにしたいです。
以下が例です。
NGになった場合、再入力を促したいです。

#!/bin/ksh
echo "Input Moji ---> \c"
read ans_Moji

if [ ${ans_Moji == "入力した文字" ] ; then
echo "OK"
else
echo "NG" 
fi

Windowsのようにgoto文があれば、簡単に出来るのですが、
シェルをはじめたばっかりでよく分かっておりません。
何かご存知でしたら、ご教授願います。

A 回答 (2件)

while true


do
echo "Input Moji ---> \c"
read ans_Moji

if [ "${ans_Moji}" == "入力した文字" ]
then
echo "OK"
break
else
echo "NG" 
fi
done

gotoも 使い方さえ間違えなければ便利だけど、私ならこうだなぁ

Windowsのバッチと比べると、ksh等は「プログラム言語」と呼べるくらいの高機能ですから、新しい言語を覚えるくらいの気持ちで、kshの作法を勉強した方がいいと思いますよ。
「Windowsではこうだった」って思い込みでやってると、挙動の違いで思わぬ失敗しかねないし。
    • good
    • 0
この回答へのお礼

早速のご回答有難うございます。
回答して頂いたとおり、trueコマンド、breakコマンドを使用すれば意図する処理ができました。
大変、勉強になりました。

有難うございます。

お礼日時:2010/06/18 11:03

ん? Korn シェルに goto ってなかったっけ?


「goto を使うべきかどうか」という議論はさておき.

参考URL:http://homepage3.nifty.com/owl_h0h0/unix/job/UNI …
    • good
    • 0

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


おすすめ情報