fff() { typeset i=0 x=10 echo "|$i|$x|" export x printenv x } fff2() { echo "|$x|" export x printenv x } fff3() { typeset i=0 x="${x-10}" echo "|$i|$x|" } fff4() { typeset i=0 x x="${x-10}" echo "|$i|$x|" } fff5() { z=y typeset z echo "|$z|" } fff x=10 fff x=1 fff x=4 fff2 x=11 fff3 echo after fff3: x=$x x=12 fff4 fff5 z=42 fff5