ウェブの入力フォームのようにLinuxのシェルスクリプトで再現します。再現するためには入力を受け付ける「READ」と画面遷移のように確認→完了を再現するために繰り返し「while」「case」を使用します。
read 入力を受け付ける
readコマンドでユーザーから入力を受け付ける部分を作成します。オプション「-p」を付けると入力する前に表示するプロンプトの文字を設定できます。
・使用例
echo "+-------------------------------------------------------+" echo "文字を入力してください。" echo "+-------------------------------------------------------+" read -p ":" INPUT_STR echo "入力した文字は[$INPUT_STR]です。" read -p "ENTERキーを押してください。"
while true do done で無限に繰り返す
while trueにすれば無限に繰り返します。これを利用して確認から文字入力に戻るところを再現します。繰り返しのループから抜けるにはbreakを使用します。
・使用例
#!/bin/bash i=0 while true do echo $i i=`expr $i + 1` if [ $i -eq 10 ]; then break fi done
case
caseを利用して確認画面のYes、noの処理を作成します。
・使用例
#!/bin/bash read -p " (y/n):" CHECK_YN case "$CHECK_YN" in [yY]) echo "YES" ;; [nN]) echo "NO" ;; esac read -p "ENTERキーを押してください。: " clear
文字入力→確認→完了
「read」「while」「case」を使って任意の文字入力→確認→完了 を完成させます。
以下がサンプルコードになります。
#!/bin/bash while true do clear echo "+-------------------------------------------------------+" echo "文字を入力してください。" echo "+-------------------------------------------------------+" read -p ":" INPUT_STR echo "+-------------------------------------------------------+" echo "入力した文字は[$INPUT_STR]でよろしいですか?" echo "+-------------------------------------------------------+" read -p " (y/n):" CHECK_YN case "$CHECK_YN" in [yY]) echo "+-------------------------------------------------------+" echo "完了しました。" echo "+-------------------------------------------------------+" ;; [nN]) echo "作成はキャンセルされました。" ;; esac read -p "処理を終了しますか? (y/N): " yn case "$yn" in [yY]) break ;; esac done read -p "ENTERキーを押してください。: " clear