varenv4.sub 587 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. f()
  2. {
  3. local -a v
  4. local -a w
  5. g
  6. echo "f: ${v[@]}, ${w[@]}"
  7. }
  8. g()
  9. {
  10. aux=v
  11. declare -ga "$aux=( asdf fdsa )"
  12. declare -ga w=( asdf fdsa )
  13. echo "g: ${v[@]}, ${w[@]}"
  14. }
  15. f
  16. echo "FIN: ${v[@]}, ${w[@]}"
  17. unset v w
  18. unset -f f g
  19. f()
  20. {
  21. local v
  22. local w
  23. g
  24. echo f: v = $v, w = $w
  25. }
  26. g()
  27. {
  28. aux=v
  29. declare -g w=one
  30. declare -g "$aux=two"
  31. echo g: v = $v, w = $w
  32. }
  33. f
  34. echo FIN: v = $v, w = $w
  35. # problem with error return propagation through bash-4.3
  36. unset -f aaa bbb
  37. unset unique
  38. aaa() {
  39. declare -g -a unique=()
  40. }
  41. bbb() {
  42. declare -g -A unique=()
  43. }
  44. aaa
  45. bbb
  46. echo after bbb: $?