標準入力
CoddyのTerminalジャーニー「基礎」セクションの一部 — レッスン 40/82。
2 番目のデータ ストリームは 標準入力 で、stdin と略されます。標準出力がコマンドが結果を送信する場所であるのに対し、標準入力はコマンドが データを受け取る 場所です。
多くのコマンドは、ファイル名を引数として指定することでファイルから読み込むことができます:
cat notes.txt
sort names.txtしかし、< 演算子を使用して、ファイルの内容をコマンドに直接リダイレクトすることもできます:
sort < names.txtこれは names.txt の内容を標準入力経由で sort コマンドに供給します。結果は sort names.txt と同じですが、メカニズムは異なります — シェルがファイルの読み取りを処理する代わりに、コマンド自体が処理します。
入力と出力のリダイレクトを1つのコマンドで組み合わせることができます:
sort < names.txt > sorted_names.txtこれはnames.txtから読み込み、内容をソートし、結果をsorted_names.txtに書き込みます。入力リダイレクトは、ファイル名引数ではなく標準入力からデータを期待するコマンドで作業する際に特に有用になります。
チャレンジ
簡単< 演算子を使って入力リダイレクトを行い、numbers.txt の内容を数値的にソートします。
以下のことを行う単一のコマンドを実行します:
<を使用してnumbers.txtをsortコマンドにリダイレクトします- 数値的にソートするために
-nフラグを使用します
ヒント: 形式は
sort -n < filenameです。シェルはファイルを読んで、その内容を標準入力経由でコマンドに供給します。
チートシート
標準入力(stdin)は、コマンドがデータを受け取る場所です。
ファイルの内容をコマンドにリダイレクトするには、< 演算子を使用できます:
sort < names.txtこれにより、ファイルの内容が標準入力経由で供給されます。シェルがコマンド自身ではなくファイルの読み取りを処理します。
入力と出力のリダイレクトを組み合わせることができます:
sort < names.txt > sorted_names.txtこれは names.txt から読み込み、内容をソートし、結果を sorted_names.txt に書き込みます。
自分で試してみよう
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。