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
 |