Greg Wooledge wrote: > 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".
That is one of the reasons I don't like the /dev/std{err,in,out} things. They are not portable. They do different things on different systems. I avoid them. Bob