func3.sub 636 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. #
  2. # test some posix-mode-specific function behavior
  3. #
  4. set -o posix
  5. func()
  6. {
  7. return 5
  8. }
  9. myfunction () {
  10. var=20 return
  11. }
  12. var=10
  13. echo expect 5 10
  14. func
  15. echo $? $var
  16. myfunction
  17. echo expect 20
  18. echo $var
  19. echo expect 5 20
  20. func
  21. echo $? $var
  22. echo expect 5 30
  23. var=30 func
  24. echo $? $var
  25. : ${TMPDIR:=/tmp}
  26. TMPFILE=$TMPDIR/func3.sub.$$
  27. rm -f $TMPFILE
  28. echo 'var=40 return 2' > $TMPFILE
  29. # test the behavior of `return' and preceding variable assignments here
  30. # because it's convenient
  31. var=10
  32. echo expect 2 40
  33. . $TMPFILE
  34. echo $? $var
  35. rm -f $TMPFILE
  36. #set -o posix
  37. var=0
  38. func()
  39. {
  40. var=20 return 5
  41. }
  42. echo expect 5 20
  43. var=30 func
  44. echo $? $var