65 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
		
		
			
		
	
	
			65 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| 
								 | 
							
								# testing behavior of command substitution as one of expansions performed by
							 | 
						||
| 
								 | 
							
								# array subscripting; should behave the same directly as when done through
							 | 
						||
| 
								 | 
							
								# a nameref
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								x[0]=42
							 | 
						||
| 
								 | 
							
								zero=0
							 | 
						||
| 
								 | 
							
								f() { typeset -n foo="$1"; declare -p foo; echo "$foo"; }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								f 'x[$zero]'
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								x[$(echo 0)]=4
							 | 
						||
| 
								 | 
							
								declare -p x
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								f 'x[$(echo 0)]'
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								unset -f f
							 | 
						||
| 
								 | 
							
								f()
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
									typeset -n foo="$1";
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									echo "x[i=0$(echo comsub >&2)]"
							 | 
						||
| 
								 | 
							
									echo "${x[i=0$(echo comsub >&2)]}"
							 | 
						||
| 
								 | 
							
									echo "${!1}"
							 | 
						||
| 
								 | 
							
									echo "$foo"
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								f 'x[i=0$(echo comsub >&2)]'
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								unset -f f
							 | 
						||
| 
								 | 
							
								unset x
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# problems with unset and namerefs pointing to non-existent variables pointed
							 | 
						||
| 
								 | 
							
								# out after bash-4.3 released
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								typeset -n foo=somevariable
							 | 
						||
| 
								 | 
							
								foo=bar
							 | 
						||
| 
								 | 
							
								unset foo		# unsets somevariable
							 | 
						||
| 
								 | 
							
								typeset -p foo somevariable
							 | 
						||
| 
								 | 
							
								echo foo = $foo
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								typeset -A foo		# should create array variable named somevariable
							 | 
						||
| 
								 | 
							
								foo["jug"]="brown"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								typeset -p foo somevariable
							 | 
						||
| 
								 | 
							
								typeset -A foo='([jug]="brown" )'
							 | 
						||
| 
								 | 
							
								typeset -p foo somevariable
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								unset foo
							 | 
						||
| 
								 | 
							
								typeset -p foo somevariable
							 | 
						||
| 
								 | 
							
								unset -n foo
							 | 
						||
| 
								 | 
							
								typeset -p foo somevariable
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								unset bar
							 | 
						||
| 
								 | 
							
								typeset -n foo=bar
							 | 
						||
| 
								 | 
							
								typeset -p foo bar
							 | 
						||
| 
								 | 
							
								unset foo
							 | 
						||
| 
								 | 
							
								typeset -p foo bar
							 | 
						||
| 
								 | 
							
								typeset -i foo
							 | 
						||
| 
								 | 
							
								foo=4+4
							 | 
						||
| 
								 | 
							
								typeset -p foo bar
							 | 
						||
| 
								 | 
							
								echo "$foo"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								unset foo
							 | 
						||
| 
								 | 
							
								typeset -p foo bar
							 |