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

Reply via email to