2013-07-24 9 views

Antwort

2

Wenn Sie nur Ausgang an der Eingabeaufforderung wieder zu bekommen, können Sie dies tun:

exec >/dev/tty 

Wenn Sie ein Skript erstellen, und Sie wollen, um die Ausgabe haben diese Befehle in Klammern einer bestimmten Gruppe von Befehlen umgeleitet, setzen:

{ 
    command 
    command 
} >/dev/null 
+2

Dies ist nur dann korrekt, wenn das ursprüngliche stdout an das TTY übergeben wurde, was auch der Fall sein kann. –

+0

@charlesduffy: OK. Vielleicht habe ich den Punkt verpasst. Ich dachte, sie wollten nur die Ausgabe an einer Eingabeaufforderung sehen. –

+0

Guter Punkt zum Umleiten von Codeblöcken. Ich hoffe, es macht Ihnen nichts aus, wenn ich es anwende. –

-1

Nicht wirklich, wie das erforderlich wäre, den Zustand eines laufenden Prozesses zu ändern. Selbst wenn man davon ausgeht, dass alles, was Sie vor dem Zurücksetzen der Standardausgabe geschrieben haben, wirklich vollständig verschwunden ist, da es an den Bit-Bucket gesendet wurde.

15

Um es richtig zu machen, müssen Sie das Original FD 1 woanders kopieren, bevor Sie es auf/dev/null zurücksetzen. In diesem Fall speichere ich eine Sicherung auf FD 5:

exec 5>&1 >/dev/null 
... 
exec 1>&5 

Eine weitere Option ist innerhalb eines Blocks stdout zu umleiten anstatt exec mit:

{ 
    ... 
} >/dev/null 
+0

"exec> & 5>/dev/null" antwortet mit "bash: 5: Bad file descriptor". – user2267134

+0

@ user2267134 Hoppla. Fest. –

+0

@CharlesDuffy Gibt es eine Möglichkeit, STDERR und STDOUT mit der ersten Methode umzuleiten? Derzeit leitet es nur STDOUT (& 1) um. – jerzy

0

stdout wiederherzustellen Ich benutze

unset &1 
+0

Eh? Bash scheint dies als 'unset & 1' zu implementieren - was bedeutet, dass 'unset' im Hintergrund ausgeführt wird, gefolgt von '1' als Befehl. Außerdem sehe ich nach einer Umleitung in der Dateideskriptortabelle keinen Hinweis darauf, dass es eine Sicherungskopie beibehielte und somit jede Wiederherstellungsoperation möglich ist. Sind Sie sicher, dass Sie diese Syntax nicht von einer anderen Shell erhalten haben? –

Verwandte Themen