はじめに
こんにちは!今回はreadコマンドについて解説します。
readは、ユーザーからの入力を受け取るコマンドです。シェルスクリプトで対話的な処理を作る時によく使います。
readコマンドとは
readは、キーボードから入力された文字を変数に格納するコマンドです。
例えば、「名前を入力してください」みたいなスクリプトを作りたい時に使います。ユーザーが入力した内容を変数に保存できるので、対話的なスクリプトが作れるんです。
基本構文
|
|
主なオプション
| オプション | 説明 |
|---|---|
-p |
プロンプトメッセージを表示 |
-s |
入力を画面に表示しない(パスワード入力時など) |
-n 数字 |
指定した文字数だけ読み込む |
-t 秒数 |
タイムアウトを設定 |
使用例
例1: 基本的な使い方
|
|
実行結果:
|
|
例2: プロンプト付きで入力
|
|
実行結果:
|
|
-pオプションを使うと、echoなしで一行で書けます。
例3: パスワード入力(入力を隠す)
|
|
実行結果:
|
|
-sオプションで入力内容が画面に表示されません。
例4: 複数の変数に格納
|
|
実行結果:
|
|
スペースで区切ると、複数の変数に分けて格納できます。
例5: タイムアウト設定
|
|
5秒以内に入力しないとタイムアウトします。
Tips・注意点
-
空白文字の扱い: デフォルトでは、入力の前後の空白は削除されます
1 2read -p "入力: " var # " test " と入力しても、$varには "test" が入る -
REPLYという特殊変数: 変数名を指定しないと、自動的に
REPLYという変数に格納されます1 2read -p "入力: " echo "入力内容: $REPLY" -
ファイルから読み込み: リダイレクトでファイルから読み込むこともできます
1 2read line < file.txt echo $line # ファイルの最初の行が表示される -
Yes/No の確認: よく使うパターン
1 2 3 4 5 6read -p "続けますか? (y/n): " answer if [ "$answer" = "y" ]; then echo "続行します" else echo "中止します" fi
実践的な使い方
インタラクティブなスクリプト
|
|
ユーザー情報を収集するスクリプトとか、こんな感じで作れます。
確認プロンプト
|
|
危険な操作の前に確認を取るとかでよく使います。
パスワード入力
|
|
パスワード設定の時とかに使えます。
ループで使う
|
|
簡単な対話シェルみたいなのも作れます。
まとめ
今回はreadコマンドについて解説しました。
ポイント:
readでユーザー入力を変数に格納できる-pでプロンプト表示、-sで入力を隠せる- スペース区切りで複数変数に分けられる
- 対話的なスクリプトを作る時に必須
シェルスクリプトで対話的な処理を作りたい時は、このコマンドが必須です。確認プロンプトとか、設定入力とか、色々使えるので覚えておくと便利ですよ。
次回もLinuxコマンドの学習を続けていきましょう!