私が興味を持っているのは、bashの組み込み制御構造と機能を使用して技術的にリダイレクトを実装する方法です。
たとえば、次のコマンドがあります。
while read line; do echo $line; done < lines.txt | tac > ~/reversed.txt
標準入力(lines.txt)をread
コマンド(引数)while
に接続するメカニズムとは何do
ですか?本体を標準出力(パイプ)に接続するメカニズムは何ですか?明らかに、いくつかのコンテキストルールが適用されますが(外部コマンドリダイレクトとは対照的に)、これらのルールは正確に何であり、bashはそれらを技術的にどのように実装しますか?
ベストアンサー1
一般に、UNIXシェルは、オープンで必要なopen
ファイルをパフォーマンス上の理由で(非常に高価であるため)組み込みコマンドと異なる場合がありますが、意味は同じです。fork
dup2
execve
fork
execve
ただし、コマンドライン解析ルールを参照している場合は、これがPOSIXで説明されています。組み込みプログラムと外部プログラムを区別しません。