From: Gerrit Pape <pape@xxxxxxxxxxx> ENOSPC as a result of an echo builting failing gives no diagnostic. Just as other shells, dash sets $? to 1, but aside from terminating the script, this does not inform the user what the problem is: zsh: % echo foo > /dev/full echo: write error: no space left on device bash: $ echo foo > /dev/full bash: echo: write error: No space left on device dash: $ echo foo > /dev/full [nothing] Print an error to stderr like the other shells. Suggested by Roger Leigh. Signed-off-by: Gerrit Pape <pape@xxxxxxxxxxx> [reworded the patch description with information from the bug] Signed-off-by: Andrej Shadura <andrew.shadura@xxxxxxxxxxxxxxx> Bug-Debian: http://bugs.debian.org/690473 --- src/eval.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/eval.c b/src/eval.c index ee43fa9..231d3e0 100644 --- a/src/eval.c +++ b/src/eval.c @@ -955,6 +955,8 @@ evalbltin(const struct builtincmd *cmd, int argc, char **argv, int flags) else status = (*cmd->builtin)(argc, argv); flushall(); + if (outerr(out1)) + warnx("%s: I/O error", commandname); status |= outerr(out1); exitstatus = status; cmddone: -- 2.17.1