【Bash入門】read -p で対話型スクリプトを作成する|標準入力とプロンプト表示の基本
Bashスクリプトでユーザーからのキーボード入力を受け取りたい場合、シェル組み込みコマンドの read を使用します。
今回は、オプション -p を使ってプロンプトメッセージを表示しながら変数へ代入する、最も基本的かつ便利な書き方を解説します。
1. サンプルコードと実行例
キーボードから入力された値を変数に格納し、そのまま画面へ出力するシンプルなスクリプトです。
① ソースコード(sample.sh)
#!/bin/bash
read -p "Enter number: " var1
echo $var1
② 実行結果
$ ./sample.sh
Enter number: 2
2
2. read -p のポイント解説
なぜ read -p を使うのか、その仕組みとメリットを整理します。
Point:プロンプト表示と入力を1行で記述できる
・-pオプション:入力を促すプロンプト文字列(例:"Enter number: ")を画面に表示します。
・変数への格納:入力された値が直後の変数名(例:var1)へ自動的に代入されます。
・通常であればecho -n "Enter number: "とread var1の2行に分けて書く処理を、1行にすっきり集約できるのが最大のメリットです。
【解説と補足ポイント:実務で使える組み合わせて覚えたいオプション】
■ パスワード入力用の非表示(
-s オプション)パスワードやAPIキーなどの機密情報を入力させる場合、入力文字を画面に表示させない
-s(silent)オプションと組み合わせます。read -sp "Enter Password: " password
■ タイムアウトの設定(
-t オプション)指定した秒数以内に利用者が入力しなかった場合、処理を自動で進めたり終了させたりする設定が可能です。
read -t 10 -p "10秒以内に入力してください: " var1
3. まとめ
対話型シェルスクリプトを作成する際は、read -p "メッセージ" 変数名 の構文を覚えておくと非常にスマートに記述できます。
必要に応じて非表示化(-s)や制限時間(-t)などのオプションと組み合わせ、ユーザーフレンドリーなスクリプトを作成しましょう。
PR