標準入力・標準出力
データの流れの調整をアプリから切り離したことで圧倒的なコンポーザビリティが生まれた。革命的なアイディア。
概要
アプリ側では標準入出力が暗黙の入出力として使えることを前提として良い
標準入出力が具体的にどんなファイルに結びつけられているか、アプリ側で意識する必要はない
アプリの実行者は、そのアプリがどのように標準入出力を使うか意識して、適切な入力元出力元を用意する義務がある
標準入出力はデフォルトでは親プロセスのそれを引き継ぐ
データの流れの調整→実行者
データの加工→アプリ
このように責任を分離することで、アプリはデータの加工に専念できる
操作
ctrl + D
標準入力の終了EOFを知らせるためのショートカット
EOFマーカーを入力ストリームに挿入する
cat > hoge.txtなどで標準入力を終了する時に使用
例
何も指定せずにシェル上から起動
シェルの標準入出力を引き継ぐ
標準入力→プロンプト、キーボード
標準出力→シェル画面
リダイレクト
コマンドで明示的に入力先ファイルや出力先ファイルを指定する
パイプ
アプリの出力を次のアプリの入力に自動で繋ぐ
ターミナルからのコマンド実行、リダイレクトもパイプも標準入出力を繋ぎ変えるのはシェルの役割
標準入出力はjournaldへのパイプに結びつけられて出力がログとして蓄積される
シェル以外ではそれぞれがよしなに標準入出力を繋ぐので都度仕様を調べること
cronジョブ、k8sでのポッド
参照