Forum: PC-Programmierung linux - bourne shell - umleitung rückgängig machen


von Dadomas (Gast)


Lesenswert?

Grüßt euch,

ich steh grad etwas auf dem Schlauch.

Meine Konsole starte ich mit:
1
/bin/sh > /dev/null 2>&1
Somit habe ich meine stderr auf stdout gelegt und die stdout auf 
/dev/null.

nun hab ich in der Konsole keine ausgabe mehr - war auch mein Ziel; 
aber, wie kann ich das zur Laufzeit wieder umbiegen - ohne hinter jedes 
kommando wieder eine umleitung wie folgt auszuführen (um eine anzeige zu 
erhalten)?
1
$kommando > /dev/tty0

danke euch

von Imon (Gast)


Lesenswert?

Dadomas schrieb:
> Meine Konsole starte ich mit:/bin/sh > /dev/null 2>&1Somit habe ich meine stderr 
auf stdout gelegt und die stdout auf
> /dev/null.
>
ist mir nicht ganz klar warum man so was haben will. Aber wenn du meinst 
es zu brauchen.


Zum rückgängig machen Probiere mal:
1
exec /bin/sh > /dev/tty0

von Web-Applikator (Gast)


Lesenswert?

Imon schrieb:
> exec /bin/sh > /dev/tty0

das hilft natürlich nur, wenn der parent-Prozess auch wirklich das 
tty0-Terminal benutzt hat.
Denn es macht nichts rückgängig, es richtet eine NEUE Umleitung ein...

Korrekter, wennauch trotzdem nicht schön, wäre ein Konstrukt in der art 
von
1
 ./something >> /proc/$PPID/fd/1

Nimmt den Parent-Prozess ($PPID) der aktuellen Shell, schaut nach wohin 
deren Filehandle #1 (STDOUT) zeigt, und leitet dahin um.

">>", also anhängen, ist wichtig, da /proc/xxx/fd/1 ein Symlink sein 
kann, und dieser evtl auf ein Logfile zeigt. ein einfaches ">" würde das 
Logfile löschen...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.