NEIN.

NEIN.

Von der Linux-Programmierschnittstelle

In einer interaktiven Shell beziehen sich diese drei Dateideskriptoren 0, 1 und 2 normalerweise auf das Terminal, unter dem die Shell ausgeführt wird.

  1. Ist mit „das Terminal, unter dem die Shell ausgeführt wird“ das Steuerterminal der Sitzung gemeint, zu der die interaktive Shell gehört?

    Wenn ja, was ist, wenn die Shell-Sitzung kein steuerndes Terminal hat?

  2. Wenn die Shell aus ihrem übergeordneten Prozess erstellt wird, erstellt die Shell in jedem der folgenden Fälle automatisch eine Verbindung zwischen den Dateideskriptoren 0, 1 und 2 und dem Terminal (Vererbung vom übergeordneten Prozess der Shell):

    • wenn „das Terminal, unter dem die Shell läuft“ oder das steuernde Terminal bereits bei einem Dateideskriptor geöffnet wurde, der nicht 0, 1 und 2 ist?

    • wenn die Dateideskriptoren 0, 1 und 2 bereits mit einer Datei verbunden wurden, die nicht „das Terminal ist, unter dem die Shell läuft“ oder das steuernde Terminal?

  3. Was ist, wenn die Shell im Zitat nicht interaktiv ist?

Danke.

Gehen Sie übrigens einfach davon aus, dass „Shell“ POSIX oder Bash ist.

VerwandtWie können wir einen Dateideskriptor von einer beliebigen Datei trennen?

Antwort1

NEIN.

Dies geschieht durch die verschiedenen Implementierungen von getty, durchopen-controlling-tty, durch den gegabelten pty-Slave-seitigen Teil eines SSH-Servers, durch den gegabelten pty-Slave-seitigen Teil eines GUI-Terminalemulators oder etwas Ähnliches.

Und beachten Sie, dass der zitierte Texthat keine Bedeutungdass die Shell das tut. Sie haben eine ganze Menge Fragen auf der Grundlage einer aus der Luft gegriffenen falschen Prämisse geschaffen.

Und Sie wussten, dass gettydies der Fall ist, weil Sie geschrieben haben, dass dies der Fall ist in "Wann wird die durch Login geleitete Prozesssitzung gestartet?", gleichzeitig mit dieser Frage geschrieben.

Weiterführende Literatur

verwandte Informationen