Forums Neueste Beiträge
 

Fehlermeldung bei read - Bug oder Feature?

26/03/2015 - 19:47 von Christoph Mehdorn Weber | Report spam
Hallo!

Mir ist gerade eine Auffàlligkeit in der dash untergekommen:

| # read PID < /tmp/not_there
| dash: 6: cannot open /tmp/not_there: No such file
| # read PID < /tmp/not_there 2>/dev/null
| dash: 8: cannot open /tmp/not_there: No such file
| # read PID < /tmp/not_there >/dev/null
| dash: 7: cannot open /tmp/not_there: No such file

Wie man sieht, schaffe ich es einfach nicht, die Fehlermeldung
umzuleiten. Im Script, das ich gerade baue und in dem ich ein read
anwende, habe ich mir jetzt mit einem "touch" beholfen, damit die
Datei da ist. Aber wie bekommt man die Meldung eleganter weg?

(Paketversion 0.5.7-3 auf Debian; gibt es eine Möglichkeit, die
dash direkt nach ihrer Version zu fragen? In der Optionsliste
finde ich nichts.)

Zugegeben, wenn ich es klammere und somit in einer Subshell
ausführe, kann ich die Meldung problemlos wegfiltern. Leider wàre
ich dann auch den Inhalt der Variablen los (wenn die Datei spàter
da ist):

| # ( read PID < /tmp/not_there ) 2>/dev/null
| #

Die "GNU bash, version 4.2.37(1)-release", die ich interaktiv
nutze, zeigt übrigens dasselbe Verhalten, was also auf Absicht
hindeutet.

Christoph

Bei uns wird Hand in Hand gearbeitet:
Was die eine nicht schafft, laesst sie andere liegen.
 

Lesen sie die antworten

#1 Dennis Preiser
26/03/2015 - 20:20 | Warnen spam
Christoph 'Mehdorn' Weber wrote:
Mir ist gerade eine Auffàlligkeit in der dash untergekommen:

| # read PID < /tmp/not_there
| dash: 6: cannot open /tmp/not_there: No such file
| # read PID < /tmp/not_there 2>/dev/null
| dash: 8: cannot open /tmp/not_there: No such file
| # read PID < /tmp/not_there >/dev/null
| dash: 7: cannot open /tmp/not_there: No such file

Wie man sieht, schaffe ich es einfach nicht, die Fehlermeldung
umzuleiten. Im Script, das ich gerade baue und in dem ich ein read
anwende, habe ich mir jetzt mit einem "touch" beholfen, damit die
Datei da ist. Aber wie bekommt man die Meldung eleganter weg?



Du kannst (zumindest mit der bash) im script vorher umleiten. Z.B. so:

| exec 2> /dev/null
| read PID < /tmp/not_there

Ob das mit der dash geht weiß ich nicht.

Dennis

Ähnliche fragen