ホームページ  >  記事  >  運用・保守  >  シェル -- 標準入出力 (読み取り&エコー)

シェル -- 標準入出力 (読み取り&エコー)

巴扎黑
巴扎黑オリジナル
2017-07-18 10:28:171779ブラウズ

入力読み取り:

目的:

標準入力から 1 行を読み取るか、ファイル記述子 FD (ファイル記述子) から 1 行を読み取り、それをフィールドに分割します。

使用法:

read [-ers] [-a 配列] [-d デリミタ] [-i バッファテキスト] [-n 読み取られた文字数] [-N 読み取られた文字数] [ -pプロンプト] [-t タイムアウト] [-u ファイル記述子] [名前...]

よく使用されるオプション:

-a: (配列) 読み取った文字を単語に分割し、配列に格納します (0 から開始) )


#!/bin/ -  ${variable[  ${variable[  ${variable[  ${variable[]}

<strong>运行效果:<br></strong>

は単語の分割に従って配列に配置され、インデックスは0から始まります<br>34 ew qr34 3qr wer er qw<br>1つ目:<br>34<br>2つ目:<br>ew<br>th3番号: <br>qr34<br> 4番目の番号: <br>3qr

-n: 指定された文字数を受信し、受信した文字数に達したら、すぐに入力状態を終了します


源码:
#- -n  
 ${num}

<strong>运行效果:<br></strong>

-n read 10 を受け入れます <br>sgfgsngfdf<br> によって受信される 10 文字は次のとおりです: sgfgsngfdf

<br> -p : 読み取りコマンドの直後にプロンプ​​トを指定でき、複数の変数に値を割り当てることができます


源码:
 -p    $num3

<strong>运行效果:<br></strong>
使用-p参数完成多个变量赋值:
请输入三个数字或字符:(用空格隔开)23 34 345 num1=23num2=34num3=345
 <br>

<br> - r: いいえ バックスラッシュによる文字のエスケープを許可します

<br> -s: read による入力データを画面に表示しません


源码:
#- -p  - 
 ${password}

<strong>运行效果:<br></strong>

-s read による入力は画面に表示されません: <br>password: <br>パスワードは 3432 rq erewr w

<br> -t: 読み取りコマンドが入力を待機する秒数。タイマーが期限切れになると、ゼロ以外のステータスを返し、入力を待って終了します。


源码:
#- -t  ${num}

<strong>运行效果:<br></strong>

は、タイムアウト後に待機を終了し、ゼロ以外の値を返します

-u: ファイル記述子 FD (ファイル記述子) から読み取ります。 。 <br>

補足内容:ファイル記述子FD
ファイル記述子は形式的には負でない整数です。実際、これは、プロセスごとにカーネルによって維持される、プロセスによって開かれたファイルのレコード テーブルを指すインデックス値です。プログラムが既存のファイルを開くか、新しいファイルを作成すると、カーネルはファイル記述子をプロセスに返します。プログラミングでは、一部の低レベル プログラミングはファイル記述子を中心に展開することがよくあります。ただし、ファイル記述子の概念は、多くの場合、UNIX や Linux などのオペレーティング システムにのみ適用されます。
慣例により、標準入力のファイル記述子は0、標準出力は1、標準エラーは2です。この規則は Unix カーネルの機能ではありませんが、一部のシェルや多くのアプリケーションがこの規則を使用しているため、カーネルがこの規則に従わない場合、多くのアプリケーションは動作しません。

ファイルからの読み取りの例:

<br>
  test. |

<br>运行效果:
read接受文本作为输入

接收的文本字符是:#------------------------------------------

接收的文本字符是:#------------------------------------------

接收的文本字符是:# read接受文本作为输入

接收的文本字符是:echo " read接受文本作为输入"

接收的文本字符是:cat test.sh | while read line

接收的文本字符是:do

接收的文本字符是:echo

接收的文本字符是:echo "接收的文本字符是:"${line}

接收的文本字符是:done

以上がシェル -- 標準入出力 (読み取り&エコー)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。