read
コマンドでユーザー入力を検証する
このステップでは、read
コマンドを使用してユーザー入力を検証する方法を学びます。
ユーザー入力を検証する一般的な方法の 1 つは、read
コマンドとwhile
ループを使用することです。これにより、有効な応答が提供されるまで、ユーザーに入力を継続的に促すことができます。
例:
while true; do
read -p "Enter a number between 1 and 10: " num
if [[ "$num" -ge 1 && "$num" -le 10 ]]; then
echo "You entered: $num"
break
else
echo "Invalid input. Please try again."
fi
done
出力例:
Enter a number between 1 and 10: 15
Invalid input. Please try again.
Enter a number between 1 and 10: 7
You entered: 7
この例では、read
コマンドはwhile
ループ内で使用され、1 から 10 の間の数値を入力するまで、ユーザーに入力を継続的に促します。if
文はユーザーの入力をチェックし、有効な場合はbreak
コマンドを使用してループを終了します。入力が無効な場合は、エラーメッセージが表示され、ループが継続します。
また、read
コマンドを-n
オプションと組み合わせて、ユーザーが入力できる文字数を制限したり、-t
オプションを使用して入力のタイムアウトを設定したりすることもできます。
例:
read -n 1 -p "Enter 'y' or 'n': " answer
echo "You entered: $answer"
出力例:
Enter 'y' or 'n': y
You entered: y
この例では、-n 1
オプションはユーザーの入力を 1 文字に制限し、-p
オプションはプロンプトを表示します。