Chet Ramey | 495aee4 | 2011-11-22 19:11:26 -0500 | [diff] [blame] | 1 | shopt -s extdebug |
| 2 | |
| 3 | callstack(){ |
| 4 | deep=${#BASH_ARGV[*]} |
| 5 | echo "deep $deep" |
| 6 | i=0 |
| 7 | for ff in ${BASH_ARGV[@]} |
| 8 | do |
| 9 | echo "$i $ff" |
| 10 | i=$(($i+1)) |
| 11 | done |
| 12 | } |
| 13 | |
| 14 | f3() |
| 15 | { |
| 16 | echo $FUNCNAME: calling callstack |
| 17 | callstack |
| 18 | echo FUNCNAME stack: ${FUNCNAME[@]} |
| 19 | caller 0 |
| 20 | echo $FUNCNAME: returning |
| 21 | } |
| 22 | |
| 23 | f2() |
| 24 | { |
| 25 | echo $FUNCNAME: calling f3 |
| 26 | f3 3 z |
| 27 | echo $FUNCNAME: return from f3 |
| 28 | } |
| 29 | |
| 30 | f1() |
| 31 | { |
| 32 | echo $FUNCNAME: calling f2 |
| 33 | f2 2 y |
| 34 | echo $FUNCNAME: return from f2 |
| 35 | } |
| 36 | |
| 37 | echo main: calling f1 |
| 38 | f1 1 x |
| 39 | echo main: f1 returns |