ホームページ >運用・保守 >Linuxの運用と保守 >Linux での read の使用法を紹介します。
1. 基本的な読み取り
read コマンドは、標準入力 (キーボード) または他のファイル記述子 (後述) からの入力を受け取ります。入力を取得した後、読み取りコマンドはデータを標準変数に入れます。以下は、読み取りコマンドの最も単純な形式です
::
#!/bin/bash echo -n "Enter your name:" //参数-n的作用是不换行,echo默认是换行 read name //从键盘输入 echo "hello $name,welcome to my program" //显示信息 exit 0 //退出shell程序。 //********************************
読み取りコマンドには -p パラメーターが提供されるため、読み取りコマンド ラインでプロンプトを直接指定できます。
したがって、上記のスクリプトは次のスクリプトのように短縮できます::
#!/bin/bash read -p "Enter your name:" name echo "hello $name, welcome to my program" exit 0
上記のreadでは、read後の変数の名前は1つだけですが、複数ある場合もあります。このとき、複数のデータが入力される場合は、最初のものが使用されます。データが最初の 1 つの変数に与えられ、2 番目のデータが 2 番目の変数に与えられます。入力データが多すぎる場合は、すべての最終値が最初の変数に与えられます。入力が少なすぎると終了しません。
//********************************************* **
読み取りコマンドの行に変数を指定することはできません。変数が指定されていない場合、読み取りコマンドは受信したデータを環境変数 REPLY に配置します。
例::
read -p "数値を入力"
環境変数 REPLY には、入力されたすべてのデータが含まれます。環境変数 REPLY は、他の変数と同様にシェル スクリプトで使用できます。
2. タイミング入力。
read コマンドの使用には潜在的な危険があります。ほとんどの場合、スクリプトは停止してユーザー入力を待ちます。データが入力されているかどうかに関係なくスクリプトの実行を継続する必要がある場合は、-t オプションを使用してタイマーを指定できます。
-t オプションは、読み取りコマンドが入力を待機する秒数を指定します。タイマーが満杯になると、読み取りコマンドはゼロ以外の終了ステータスを返します
#!/bin/bash if read -t 5 -p "please enter your name:" name then echo "hello $name ,welcome to my script" else echo "sorry,too slow" fi exit 0
タイマーの入力に加えて、入力された文字をカウントするように読み取りコマンドを設定することもできます。入力された文字数が所定の文字数に達すると自動的に終了し、入力されたデータを変数に代入します。
#!/bin/bash read -n1 -p "Do you want to continue [Y/N]?" answer case $answer in Y | y) echo "fine ,continue";; N | n) echo "ok,good bye";; *) echo "error choice";; esac exit 0
この例では、-n オプションの後に値 1 を使用して、1 文字を受信したらすぐに終了するように読み取りコマンドに指示しています。応答する文字を押すだけで、読み取りコマンド
が入力を受け入れて変数に渡します。 Enterを押す必要はありません。
3. サイレント読み取り (入力はモニターに表示されません)
スクリプトのユーザー入力が必要な場合がありますが、入力されたデータがモニターに表示されることは想定されていません。典型的な例はパスワードの入力ですが、もちろん他にも隠す必要のあるデータはたくさんあります。
-s オプションを使用すると、読み取りコマンドに入力されたデータをモニターに表示しないようにできます (実際にはデータは表示されますが、読み取りコマンドにより文字の色が背景と同じ色に設定されます)。
#!/bin/bash read -s -p "Enter your password:" pass echo "your password is $pass" exit 0
4. ファイルを読み取る
最後に、read コマンドを使用して Linux システム上のファイルを読み取ることもできます。
read コマンドが呼び出されるたびに、ファイル内のテキストが「1 行」読み取られます。ファイルに読み取り可能な行がない場合、読み取りコマンドはゼロ以外のステータスで終了します。
ファイルの読み込みの鍵は、テキスト内のデータをどのように読み込みコマンドに渡すかです。
最も一般的な方法は、ファイルに対して cat コマンドを使用し、結果を read コマンドを含む while コマンドに直接パイプすることです
例::
#!/bin/bash count=1 //赋值语句,不加空格 cat test | while read line //cat 命令的输出作为read命令的输入,read读到的值放在line中 do echo "Line $count:$line" count=$[ $count + 1 ] //注意中括号中的空格。 done echo "finish" exit
以上がLinux での read の使用法を紹介します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。