標準入力
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の内容を数値として並べ替えます。
次の処理を行うコマンドを1つ実行します。
<を使ってnumbers.txtをsortコマンドにリダイレクトする- 数値として並べ替えるために
-nフラグを使う
ヒント: 書式は
sort -n < filenameです。シェルがファイルを開き、コマンドの標準入力に接続します。
自分で試してみよう
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
自分で練習してみよう: Terminalプレイグラウンド