| # |
| # test some posix-mode-specific function behavior |
| # |
| set -o posix |
| func() |
| { |
| return 5 |
| } |
| |
| myfunction () { |
| var=20 return |
| } |
| var=10 |
| echo expect 5 10 |
| func |
| echo $? $var |
| |
| myfunction |
| echo expect 20 |
| echo $var |
| |
| echo expect 5 20 |
| func |
| echo $? $var |
| |
| echo expect 5 30 |
| var=30 func |
| echo $? $var |
| |
| : ${TMPDIR:=/tmp} |
| TMPFILE=$TMPDIR/func3.sub.$$ |
| |
| rm -f $TMPFILE |
| echo 'var=40 return 2' > $TMPFILE |
| |
| # test the behavior of `return' and preceding variable assignments here |
| # because it's convenient |
| var=10 |
| echo expect 2 40 |
| . $TMPFILE |
| echo $? $var |
| |
| rm -f $TMPFILE |
| |
| #set -o posix |
| var=0 |
| func() |
| { |
| var=20 return 5 |
| } |
| |
| echo expect 5 20 |
| var=30 func |
| echo $? $var |