FC2ブログ

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

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

#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以外でも
入力すると終了するようになる
スポンサーサイト



テーマ : Linux
ジャンル : コンピュータ

コメント

非公開コメント

最新記事
検索フォーム
GREEハコニワ攻略サイト
リンク
カテゴリ
月別アーカイブ
フリーエリア
最新記事
FXプライムレート
最新コメント
最新トラックバック