53 lines
		
	
	
	
		
			789 B
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
	
		
			789 B
		
	
	
	
		
			Text
		
	
	
	
	
	
# testing various combinations of quoted and unquoted expansions of $@, and
 | 
						|
# whether they generate empty words after expansion
 | 
						|
 | 
						|
n() { echo "$#"; }
 | 
						|
 | 
						|
n "$@"
 | 
						|
n ${foo-"$@"}
 | 
						|
n "${foo-$@}"
 | 
						|
 | 
						|
n ""$@
 | 
						|
n """$@"
 | 
						|
 | 
						|
n $(true)$@
 | 
						|
n "$(true)$@"
 | 
						|
n "$(true)$@"
 | 
						|
n "$(true)""$@"
 | 
						|
 | 
						|
n $xxx$@
 | 
						|
n "$xxx$@"
 | 
						|
n $xxx"$@"
 | 
						|
n "$xxx""$@"
 | 
						|
 | 
						|
recho $xxx"$@"
 | 
						|
echo after 1
 | 
						|
 | 
						|
recho "$xxx$@"
 | 
						|
echo after 2
 | 
						|
 | 
						|
recho ${foo:-$xxx"$@"}
 | 
						|
echo after 3
 | 
						|
 | 
						|
# this is where these things start to differ
 | 
						|
echo same as 1
 | 
						|
recho "${foo:-$xxx"$@"}"
 | 
						|
echo same as 2
 | 
						|
recho "${foo:-$xxx$@}"
 | 
						|
 | 
						|
echo null fields
 | 
						|
recho ""$@
 | 
						|
recho """$@"
 | 
						|
 | 
						|
echo null fields in rhs
 | 
						|
echo null string with unquoted '$@'
 | 
						|
recho ${foo:-""$@}
 | 
						|
echo null string with quoted '$@'
 | 
						|
recho ${foo:-"""$@"}
 | 
						|
 | 
						|
echo assignment
 | 
						|
recho "${foo=$@}"
 | 
						|
echo variable
 | 
						|
recho "$foo"
 | 
						|
echo dollar-at
 | 
						|
recho "${@}"
 |