| a returns 5 |
| b returns 4 |
| c returns 3 |
| d returns 2 |
| in e |
| e returned 25 |
| x is 25 |
| ZZ |
| abcde |
| defghi |
| ZZ |
| 5 |
| 0 |
| AVAR |
| AVAR |
| foo |
| foo |
| AVAR |
| 5 |
| 5 |
| f1 |
| f1 () |
| { |
| ( return 5 ); |
| status=$?; |
| echo $status; |
| return $status |
| } |
| before: try to assign to FUNCNAME |
| outside: FUNCNAME = |
| before: FUNCNAME = func |
| FUNCNAME = func2 |
| after: FUNCNAME = func |
| outside2: FUNCNAME = |
| function |
| zf is a function |
| zf () |
| { |
| echo this is zf |
| } |
| f is a function |
| f () |
| { |
| echo f-x; |
| echo f-y |
| } 1>&2 |
| subshell |
| f is a function |
| f () |
| { |
| echo f-x; |
| echo f-y |
| } 1>&2 |
| f2 is a function |
| f2 () |
| { |
| echo f2-a; |
| function f3 () |
| { |
| echo f3-a; |
| echo f3-b |
| } 1>&2; |
| f3 |
| } |
| subshell |
| f2 is a function |
| f2 () |
| { |
| echo f2-a; |
| function f3 () |
| { |
| echo f3-a; |
| echo f3-b |
| } 1>&2; |
| f3 |
| } |
| f4 is a function |
| f4 () |
| { |
| echo f4-a; |
| function f5 () |
| { |
| echo f5-a; |
| echo f5-b |
| } 1>&2; |
| f5 |
| } 2>&1 |
| subshell |
| f4 is a function |
| f4 () |
| { |
| echo f4-a; |
| function f5 () |
| { |
| echo f5-a; |
| echo f5-b |
| } 1>&2; |
| f5 |
| } 2>&1 |
| testgrp is a function |
| testgrp () |
| { |
| echo testgrp-a; |
| { |
| echo tg-x; |
| echo tg-y |
| } 1>&2; |
| echo testgrp-b |
| } |
| subshell |
| testgrp is a function |
| testgrp () |
| { |
| echo testgrp-a; |
| { |
| echo tg-x; |
| echo tg-y |
| } 1>&2; |
| echo testgrp-b |
| } |
| funca is a function |
| funca () |
| { |
| ( echo func-a ) |
| } |
| funcb is a function |
| funcb () |
| { |
| ( echo func-b ) |
| } |
| funcc is a function |
| funcc () |
| { |
| ( echo func-c ) 2>&1 |
| } |
| func-a |
| func-b |
| func-c |
| foo-bar |
| foo-bar () |
| { |
| : |
| } |
| expect 5 10 |
| 5 10 |
| expect 20 |
| 20 |
| expect 5 20 |
| 5 20 |
| expect 5 30 |
| 5 30 |
| expect 2 40 |
| 2 40 |
| expect 5 20 |
| 5 20 |
| ./func4.sub: line 10: foo: maximum function nesting level exceeded (100) |
| 1 |
| after: f = 100 |
| ./func4.sub: line 10: foo: maximum function nesting level exceeded (100) |
| 1 |
| after: f = 100 |
| 7 |
| after FUNCNEST reset: f = 201 |
| 7 |
| after FUNCNEST unset: f = 201 |
| ./func4.sub: line 10: foo: maximum function nesting level exceeded (20) |
| 1 |
| after FUNCNEST assign: f = 38 |
| 5 |