Ausgabe in Pipe und auf STDOUT oder STDERR mit "su -c"?

01/03/2014 - 10:33 von Manuel Reimer | Report spam
Hallo,

ich möchte gerne einen Bestandteil einer Pipe ausgeben, aber
gleichzeitig in der Pipe zur weiteren Verarbeitung weiterreichen.

Mein üblicher "Trick" dafür ist etwas wie:

echo 'test' | tee /dev/stderr | some_other_commands

Problem dabei, wenn ich einen Befehl mit einem anderen User ausführen will:

su $USER -c 'echo test | tee /dev/stderr | cat /dev/null'
tee: /dev/stderr: Permission denied

Hat da jemand einen guten Einfall wie man das Problem lösen kann? Ist es
eventuell möglich in meinem kleinen Shellscript den auszugebenden
Bestandteil auf anderem Wege "abzuzweigen"?

Danke im Voraus.

Gruß

Manuel
 

Lesen sie die antworten

#1 Thomas PointedEars Lahn
01/03/2014 - 11:05 | Warnen spam
Manuel Reimer wrote:

ich möchte gerne einen Bestandteil einer Pipe ausgeben, aber
gleichzeitig in der Pipe zur weiteren Verarbeitung weiterreichen.

Mein üblicher "Trick" dafür ist etwas wie:

echo 'test' | tee /dev/stderr | some_other_commands



Du kannst nicht davon ausgehen, dass /dev/stderr existiert:

<https://lists.debian.org/debian-use...4.html>

POSIX:2008 sagt dazu nur

<http://pubs.opengroup.org/onlinepub...n.html>

Auch der Filesystem Hierarchy Standard schweigt sich dazu aus:

<http://www.pathname.com/fhs/>

Problem dabei, wenn ich einen Befehl mit einem anderen User ausführen
will:

su $USER -c 'echo test | tee /dev/stderr | cat /dev/null'
tee: /dev/stderr: Permission denied

Hat da jemand einen guten Einfall wie man das Problem lösen kann?



Vermutlich.

Ist es eventuell möglich in meinem kleinen Shellscript den auszugebenden
Bestandteil auf anderem Wege "abzuzweigen"?



Ja.

<http://www.tty1.net/smart-questions_de.html>

PointedEars

Twitter: @PointedEars2
Please do not Cc: me. / Bitte keine Kopien per E-Mail.

Ähnliche fragen