スクリプトでユーザ入力の受け付け

スクリプトでユーザ入力の受け付け
#16 ユーザーからの入力を受け付けよう
http://dotinstall.com/lessons/basic_shellscript/10616
を参考に、スクリプトでのユーザ入力の受け付けを学習
これにより、スクリプト実行中に
文字入力が可能になる
これには
read
を使う
動画を参考に実践
vim readtest.sh として
中身を
#!/bin/bash
while :
do
echo “文字を入力してください(終わりたいのなら end を入力)”
read key
echo “you pressed $key”
if [ $key = “end” ];then
break
fi
done
として保存
read の前に echo で文字を書いたのは
終わり方を示すのと
read だけだと何も表示されないので
わかりにくいから
while :
なので、無限ループ
終わるためには
if [ $key = “end” ];then
break
fi
の if 文にあるように $key = end となる
つまり end を入力したら終わり
ループ脱出には break を使う
case だと break は ;; だけど 
while の場合ならbreak でOK
chmod +x readterst.sh
./readtest.sh
で実行すると
文字を入力してください(終わりたいのなら end を入力)
start
you pressed start
文字を入力してください(終わりたいのなら end を入力)
next
you pressed next
文字を入力してください(終わりたいのなら end を入力)
end
you pressed end
となる
ユーザ入力により処理分岐というのに使える
とくに case 文とか
また、選択肢でえらばせるには
select を使う
select option in CODE DIE
do
echo “you pressed $option”
break;
done
を追加する
構文は
select 変数 in 選択肢1 選択肢2
do
処理内容
break;
done
となる
オプションをつけて実行すると
文字を入力してください(終わりたいのなら end を入力)
true
you pressed true
文字を入力してください(終わりたいのなら end を入力)
end
you pressed end
1) CODE
2) DIE
#? 3
you pressed
というようになる
オプションをつけた場合、
1) CODE
2) DIE
というように表示される
本来は、なんらかの処理をするけど
今回は
break
となっているので、どの数字、1、2以外でも
入力すると終了するようになる

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です