64 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			64 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
 | 
