【Linux】シェルスクリプトでキーボード入力を受付ける方法

シェルスクリプトのキーボード入力の受付方
  • このエントリーをはてなブックマークに追加
  • Pocket

Linuxのシェルスクリプトでキーボードから入力を受け付ける必要があるときがある。

このページではその方法をサンプルのスクリプトともにご紹介した。参考にしてほしい。

キーボードから入力を受け付ける

キーボード入力を受け付けたいとき

スクリプトを記述しているときにふと「ユーザのキーボードから入力を受付けてほしい」というときがあると思う。

例えば、ステージ環境から本番環境に移すときに、どの部分を移すかをキーボードで選択するなどだ。

その場合「read」を使用するとそれが実現できる。基本的にUnix Like Systemではコマンドは対話的でないほうが自動化において有利にはたらくことが多いが、実際にオペレートしてみると、「ここだけは一度確認をとらなければ」というシーン、もしくは単純に対話的であってほしい、ということもあるだろう。

そういった場合に、繰り返しの前や処理の分岐前などにユーザに確認や入力をもとめることができる。bashの場合タイムアウトなどの設定も可能となっている。

なおreadはシェルに内蔵されている「組み込みコマンド」である。そのため/usr/bin/の下にコマンドがあるわけではないので注意しよう。

実際に使ってみよう

実際に試して見る。

サンプルコード

vi test-read.sh

出力結果

test read極限までシンプルにした例となったが、これで標準入力から入力を受取、変数へ代入することができるようになった。これから先変数を自由に扱い処理してゆくことになる。

まだ説明していない変数というものがあるが、今は「str」が変数という器で先頭に「$」がつくと参照できるという認識で問題ない。

複数の入力を受付ける

また複数の変数を同時に受け取ることも可能となっている。

サンプルコード

vi test-read-ver2.sh

出力結果

test read-ver2

その他とBash固有オプション

その他readはwhileと組み合わせて使用することが多い、このwhileは繰り返しの制御文でreadと組み合わせると一行ずつファイルの内容を読み込むことができる。

このとき「\」(バックスラッシュ)は特殊文字として扱われるため処理がうまくいかないときがある「\」を無視したい場合「-r」オプションを使用することで「\」も通常の文字列として処理される。

ほかにもBash固有のオプションとして幾つかオプションが存在している

  • -p プロンプトを表示する
  • -t タイムアウトを設定する。

-pオプション実例

「-p」オプションを指定することにより、事前にechoコマンドをはさむ必要がなくなる。

サンプルコード

vi test-read-ver3.sh

出力結果

test read-ver3

-tオプション実例

「-t」 オプションでタイムアウトを指定すると指定した時間だけ入力を受け付けてくれる。

サンプルコード

vi test-read-ver4.sh

出力結果

test-read-ver4

10秒間の間入力を受け付けてくれる、何も入力されなかった場合、そのままプロンプトが返ってくる。

とりあえず入力待ち

またreadはとりあえず処理をとめてEnter入力待ちをしたいときも有用である。

サンプルコード

vi test-read-ver5.sh

出力結果

read

まとめ

このページではシェルスクリプトでキーボードからの入力を扱う方法についてまとめてきた。

シェルスクリプトでは必ず使う機能だ。使って覚えてしまうのが吉だ。

  • このエントリーをはてなブックマークに追加
  • Pocket

このページの続きや関連ページは下記から一覧で確認できます。

IT講師に興味はありませんか?

・「今までIT講師をやってきたが、更に多くの講義を行いたい」

・「エンジニアとしてやってきたが講師業に魅力を感じている」

・「講師として活躍するためにベースとなる知識を知りたい」

・「様々な分野や言語の講師にチャレンジしてみたい」


という方はぜひIT講師募集のページをご覧ください。


リスキルテクノロジーでは「受講している方々にITを好きになってもらう」ことを目標に、同じ目標に向かって歩んで行ける講師の方を常に探しています。


システム開発やインフラ構築などのエンジニアリング経験を活かし、新入社員などの未経験者や経験の浅い初学者の方々に対してITトレーニングを行っていただくことになります。


テキストやカリキュラムは事前に用意されており、それらを元に講義を進めていくため、IT講師をはじめて実施する方でも安心してトレーニングを実施できます。


IT講師募集のページを見る

SNSでもご購読できます。

コメントを残す

*

未経験からの育成制度も充実
IT講師に興味はありませんか?

リスキルテクノロジーでIT講師の積極募集を開始! 経験・未経験問わずご応募可能。育成制度で講師スキル向上も目指せます

IT講師に応募する