40 lines
		
	
	
	
		
			486 B
		
	
	
	
		
			Text
		
	
	
	
	
	
		
		
			
		
	
	
			40 lines
		
	
	
	
		
			486 B
		
	
	
	
		
			Text
		
	
	
	
	
	
| 
								 | 
							
								shopt -s extdebug
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								callstack(){
							 | 
						||
| 
								 | 
							
								 deep=${#BASH_ARGV[*]}
							 | 
						||
| 
								 | 
							
								 echo "deep $deep"
							 | 
						||
| 
								 | 
							
								 i=0
							 | 
						||
| 
								 | 
							
								 for ff in ${BASH_ARGV[@]}
							 | 
						||
| 
								 | 
							
								 do
							 | 
						||
| 
								 | 
							
								  echo "$i $ff"
							 | 
						||
| 
								 | 
							
								  i=$(($i+1))
							 | 
						||
| 
								 | 
							
								 done
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								f3()
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
									echo $FUNCNAME: calling callstack
							 | 
						||
| 
								 | 
							
									callstack
							 | 
						||
| 
								 | 
							
									echo FUNCNAME stack: ${FUNCNAME[@]}
							 | 
						||
| 
								 | 
							
									caller 0
							 | 
						||
| 
								 | 
							
									echo $FUNCNAME: returning
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								f2()
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
									echo $FUNCNAME: calling f3
							 | 
						||
| 
								 | 
							
									f3 3 z
							 | 
						||
| 
								 | 
							
									echo $FUNCNAME: return from f3
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								f1()
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
									echo $FUNCNAME: calling f2
							 | 
						||
| 
								 | 
							
									f2 2 y
							 | 
						||
| 
								 | 
							
									echo $FUNCNAME: return from f2
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								echo main: calling f1
							 | 
						||
| 
								 | 
							
								f1 1 x
							 | 
						||
| 
								 | 
							
								echo main: f1 returns
							 |