101 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
		
		
			
		
	
	
			101 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
|   | declare -n r | ||
|  | declare -n r | ||
|  | unset -n r | ||
|  | 
 | ||
|  | r=foo | ||
|  | declare -n r=/ | ||
|  | 
 | ||
|  | r=% | ||
|  | declare -n r | ||
|  | unset r | ||
|  | 
 | ||
|  | declare -n r | ||
|  | r=^ | ||
|  | declare -p r | ||
|  | 
 | ||
|  | unset -n r | ||
|  | 
 | ||
|  | declare -n foo | ||
|  | declare -a foo | ||
|  | declare -p foo | ||
|  | foo[0]=7 | ||
|  | declare -p foo | ||
|  | unset foo | ||
|  | 
 | ||
|  | declare -n x | ||
|  | declare x=42 | ||
|  | declare -p x | ||
|  | 
 | ||
|  | declare -n -r RO=foo | ||
|  | declare -p RO | ||
|  | 
 | ||
|  | unset -n r; unset r | ||
|  | 
 | ||
|  | # the details of this may change; currently we put namerefs and values into | ||
|  | # the tempenv if the nameref value is an invalid variable name | ||
|  | f() { echo $r; } | ||
|  | 
 | ||
|  | declare -n r | ||
|  | r=/ ${THIS_SH} < /dev/null | ||
|  | r=/ f | ||
|  | 
 | ||
|  | unset -f f | ||
|  | 
 | ||
|  | # the details of this may change; this will tell me when they do | ||
|  | declare -n foo ; declare -i foo=7*6 ; declare -p foo | ||
|  | unset -n foo | ||
|  | declare -n foo ; declare -i foo ; foo=7*6 ; declare -p foo | ||
|  | 
 | ||
|  | # used to be buggy | ||
|  | f() | ||
|  | { | ||
|  | 	unset var | ||
|  | 	declare -n ref=var | ||
|  | 	declare -n ref | ||
|  | 	declare -p ref | ||
|  | } | ||
|  | f | ||
|  | 
 | ||
|  | unset -f f | ||
|  | f() | ||
|  | { | ||
|  | 	local var | ||
|  | 	declare -n ref=var | ||
|  | 	declare -n ref | ||
|  | 	declare -p ref | ||
|  | } | ||
|  | f | ||
|  | 
 | ||
|  | unset ref; unset -n ref | ||
|  | unset var | ||
|  | 
 | ||
|  | var=foo | ||
|  | typeset -n ref=var[0] | ||
|  | readonly ref | ||
|  | typeset -p var | ||
|  | 
 | ||
|  | var2=foo | ||
|  | typeset -n ref2=var2 | ||
|  | readonly ref2 | ||
|  | typeset -p var2 | ||
|  | 
 | ||
|  | unset var | ||
|  | unset -n ref ref2 | ||
|  | 
 | ||
|  | unset var; typeset -n ref=var | ||
|  | ref[0]=foo | ||
|  | typeset -p ref var | ||
|  | unset -n ref | ||
|  | 
 | ||
|  | unset var; typeset -n ref | ||
|  | ref[0]=foo | ||
|  | typeset -p ref | ||
|  | unset -n ref | ||
|  | 
 | ||
|  | ref=global | ||
|  | f() { declare -n ref=var; ref[0]=foo1; }; f | ||
|  | f() { declare -n ref=var; ref[0]=foo2; }; f | ||
|  | declare -p ref var | ||
|  | 
 | ||
|  | declare -p global |