Linuxのリードコマンド
1、基本的な読書
標準のリードコマンド入力(キーボード)入力、または他の入力ファイルディスクリプタ(以下、言う)を受け取ります。入力を取得した後、標準の変数にコマンドデータを読み出します。以下は、リードコマンドであります
最も単純な形式::
#!/ binに/ bashの
//パラメータ-n役割が包まれていない、エコーデフォルトは改行です:「あなたの名前を入力します」-nエコー
キーボードから名前//入力を読み込みます
//表示情報「ハロー$名、私のプログラムへようこそ」のエコー
終了0 //シェルプログラムを終了します。
// ********************************
以来、読み出しコマンドが提供-p パラメータを、可能に読み取る直接コマンドラインプロンプトを指定します。
したがって、上記のスクリプトは、次のスクリプトに省略することができます::
#!/ binに/ bashの
「あなたの名前を入力してください:」-p読みの名前
「私のプログラムへの歓迎こんにちは$名、」エコー
終了0
上記で読み取りバックだけ変数名入力データの数ならばAを、第二の変数に、入力データを複数の場合、最初の変数に第一データ、第二データが複数存在してもよいですあまりにも、最後にすべての値は、最初の変数を与えました。あまりにも少ない入力が終わっていない場合。
// *****************************************
リードコマンドラインで指定されなくてもよい。変数が指定されていない場合、読み出し、受信したコマンドデータは、環境変数に格納されますREPLY です。
例えば::
「番号を入力して」-p読みます
環境変数REPLY 入力に含まれるすべてのデータは、内の他の変数と同様に使用することができ、シェルスクリプトで使用する環境変数REPLY。
図2に示すように、入力をクロックします。
潜在的な危険性があるリードコマンドを使用します。スクリプトが停止する可能性があり、ユーザーの入力を待っています。かかわらず、入力データが継続しなければならないかどうかのスクリプトが実装する場合は、使用することができ-tタイマーを指定するオプションを選択します。
-tオプションは、読み出しコマンドの入力を待つ秒数を指定します。タイミングがいっぱいになると、リードコマンドは、非ゼロの終了ステータスを返します。
#!/ binに/ bashの
読めば5 -t -p「あなたの名前を入力してください」という名前を
それから
「私のスクリプトへの歓迎こんにちは$名、」エコー
他
「申し訳ありませんが、遅すぎる」エコー
されます
終了0
入力時間カウントに加えて、提供することもできる読みコマンド数文字入力を。入力文字の数が所定数、自動引き落とし、および変数に割り当てられた入力データに達したとき。
#!/ binに/ bashの
読み-n 1 -p "をあなたは[Y / N]を続行しますか?" 回答
中ケース$答え
Y | Y)
「罰金、引き続き」エコー;;
N | N)
「OK、さようなら」エコー;;
*)
「エラーの選択」エコー;;
ESAC
終了0
この例では使用しています-n 値が続くオプション、1を示す、読み取り限り、文字の終了を受けて、コマンドを。ただ、回答する文字を押して、リードコマンドがすぐに入力を受け入れ、変数を渡します。Enterキーを押さずに。
3、黙読(入力がモニターに表示されていません)
時々、スクリプトは、ユーザーの入力が必要ですが、モニタ上に表示されるデータを入力する必要はありません。典型的な例は、もちろん、他の多くの隠されたデータのニーズがあり、入力されたパスワードです。
-s オプションは、することが可能である読みデータコマンドは、(実際には、データのみが表示されているモニタに表示入力されていない読んで同じ色にコマンドテキストと背景色を)。
#!/ binに/ bashの
読み -s パス:-p「パスワードを入力してください」を
「あなたのパスワードは$パスである」エコー
終了0
4、ファイルを読みます
最後に、あなたはまた、使用することができ、読み取りの読み取りにコマンドを、Linuxのシステム上のファイルを。
読み出しコマンドのすべての呼び出しは、ファイル読み込み、「行」のテキストを。ファイルが読み込み可能な行がない場合、コマンドがゼロでない状態出口となりますお読みください。
キーはテキストでファイル転送データを読み取る方法です読みコマンドを。
最も一般的な方法は、ファイルを使用することである猫のコマンドと直接含むようにパイプラインを介して結果を送信する読み出しコマンドをしながら、コマンド
例::
#!/ binに/ bashの
= 1つの//代入文、スペースなしを数えます
猫のテスト|読取ライン// catコマンドながら、出力の入力は、コマンドを読んで行の値を読んで読んで
行う
エコー「ライン$回数:$ライン」
= $かっこ内の[$回数+ 1] // NOTEスペースを数えます。
完了
「仕上げ」エコー
終了0