シェル・スクリプト・リファンレス
コマンド集(機能別) | コマンド集(アルファベット順) | コマンド逆引き大全 | シェル・スクリプト・リファンレス

 文字列の入力

 シェル・スクリプトの実行中にキーボードから入力を受け付けたい場合は,readを利用する。readはキーボードからの入力を指定した変数に代入する。たとえば,以下のようなシェル・スクリプト「wname.sh」があったとする。


#!/bin/sh

echo -n "What is your name? : "
read ans
echo "Hello, $ans"

 このスクリプトを実行すると,メッセージが表示された後,キーボードからの入力待機状態になる。ここで任意の文字を入力し,Enterキーを押すとans変数に入力される。


$ ./wname.sh 
What is your name? : Fukuda   ←  文字を入力できる
Hello, Fukuda


 複数の変数に文字列を入力する

 readはスペースやタブで区切ることで,複数の変数に入力できる。たとえば,以下のようなシェル・スクリプト「fullname.sh」があったとする。


#!/bin/sh

echo -n "What is your name? ( "First name" "Family name" ) : "
read f_name l_name
echo "Good morning, $l_name"
echo "Hello, $f_name"

 このスクリプトを実行し,入力状態で2つの文字列をスペースで区切って入力すると,最初の文字列はf_name,スペースの後の文字列がl_nameに代入される。


$ ./fullname.sh 
What is your name? ( "First name" "Family name" ) : Kazuhiro Fukuda   
Good morning, Fukuda.
Hello, Kazuhiro.