On Tue, Sep 16, 2014 at 09:03:20AM +0200, Ralf Goertz wrote: > Actually things are more complicated. I do need the /dev/stdout part. I > obiously don't have the problem with `cat' but with some other program
> $ for i in file[12] ; do program -i "$i" -o /dev/stdout ; done > outfile It's important to note that the following two cases are *not* equivalent: cat "$i" >/dev/stdout program -i "$i" -o /dev/stdout In the first case, the /dev/stdout is part of a redirection. On platforms that do not have a native /dev/stdout in the file system, Bash handles this *internally* (and it would actually work the way you expected). In the second case, /dev/stdout is just a string as far as Bash is concerned. It is passed verbatim to "program" as an argument. There is no internal Bash magic happening. You get the underlying operating system implementation, or you get "no such file or directory". You can try the process substitution that was suggested earlier, or you can explicitly make a named pipe and set up a background reader process.