On Sep 12, 2014 6:42 PM, "Ralf Goertz" <me@myprovider.invalid> wrote: > > Hi, > > Why do I need cat (the second on) here? > > $ echo first >file1 > $ echo second >file2 > $ (for i in file[12] ; do cat "$i" > /dev/stdout ; done) | cat > both > > $ cat both > first > second > > ---- > > If I omit the "| cat" after the loop I get > > $ cat both > second > > Even when using ">> both" instead of "> both" only "second" makes it > into both. Why? I would have thought that using a subshell should be > enough to protect the both from being overwritten. > > Ralf > >
Also remove the redirection to stdout and the subshell for ... done > both