Shell

會話中的每個程序是否從會話連接的終端獲取輸入並將其輸出發送到終端?

  • November 11, 2017

本教程說以下內容:

每個會話都綁定到一個終端,會話中的程序從終端獲取輸入並將輸出發送到終端。

我認為這個陳述是不正確的,因為假設我從終端打開了一些程序(這個程序/程序將在連接到終端的會話中)並且我將這個程序重定向stdout到一個文件。現在程序沒有將其輸出發送到終端。

我對麼?

該語句正確地描述了名義情況:打開一個終端,在這個終端的自己的會話中執行一個 shell,然後從 shell 執行更多的程序。您是正確的,該陳述通常不正確:任何程序都可以從任何地方發送輸出和接收輸入,而不僅僅是會話的控制終端。Shell 重定向是使程序的標準輸入或輸出成為終端以外的東西的最常用方法。

不要期望教程涵蓋所有情況。如果是這樣,那將是不可理解的。

引用自:https://unix.stackexchange.com/questions/403940