> XXX=10; { XXX=20; } | read; echo $XXX
>
> XXX=10; { XXX=20; }; echo $XXX
>
> I suppose both of them should output '20' but the first one outputs
> '10'. Is it feature of bug?
This is normal. It's explained in entry E4 in the bash FAQ.
Oh, sorry, I made a mistake in the subject, it should have been "left
half" of pipeline. Anyway the examples were right and I have already
read E4 entry of the FAQ but I still couldn't understand the results.
It's clear that 'read' is executed as an separate process and its
result (REPLY variable value) is lost but 'XXX=20' command is done by
the same process as 'XXX=10'. And if it's so why the 'XXX=20' command
has no effect in the first example? Only because it's done as part of
the pipeline?
_______________________________________________
Bug-bash mailing list
Bug-bash@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-bash