Can some one please explain the below statements?$ x=50$ (x=100) #here the code executes only with in the subshell. when subshellexecution done then the x value is returned to its original value, i.e. 50$ echo $x$ 50$ x=50$ { x=100; } #here the x value totaly changes and affecting to the current shell value of x and changes it from 50 to 100$ echo $x$ 100how these are happening, Can some one explain? 
Diff between (x=100) and { x=100; }?
shell;subshell