redir11.sub 723 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. # make sure redirections do not have access to the temporary environment, even
  2. # in subshells and command substitutions
  3. a=1
  4. a=4 b=7 ss=4 echo $a
  5. a=42
  6. a=2 echo foo >&$a
  7. a=2 echo foo >&$(echo $a)
  8. foo()
  9. {
  10. local -i a
  11. local v=0 x=1
  12. a+=3
  13. echo $a
  14. }
  15. a=4 b=7 ss=4 declare -i ss
  16. a=4 b=7 foo
  17. echo after: $a
  18. unset a
  19. a=4 echo foo >&$(foo)
  20. a=1 echo foo >&$(foo)
  21. a=1 echo foo >&$(a=4 foo)
  22. echo foo >&$(a=4 foo)
  23. a=42
  24. a=2 echo foo >&$a
  25. a=2 echo foo >&$(echo $a)
  26. unset -f foo
  27. foo()
  28. {
  29. local -i a
  30. local v=0 x=1
  31. a+=3
  32. echo $a >&$(ss= declare -i ss)
  33. }
  34. a=4 b=7 foo
  35. echo after: $a
  36. unset a
  37. typeset -i a
  38. a=4 eval echo $(echo a+=3)
  39. a=2
  40. a=9 echo foo >&$(echo $a)
  41. a=2
  42. a=9 eval echo foo >&$(echo $a)
  43. a=2
  44. a=9 eval echo foo '>&$(echo $a)'