121 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
		
		
			
		
	
	
			121 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
|   | # test the expansion of ${array[@]} and ${array[*]}, both quoted and | ||
|  | # unquoted.  the expansions should be exactly analogous to the | ||
|  | # expansions of $@ and $* quoted and unquoted | ||
|  | A=(a b) | ||
|  | 
 | ||
|  | recho "${A[*]}" | ||
|  | 
 | ||
|  | # If IFS is null, the parameters are joined without separators | ||
|  | IFS='' | ||
|  | recho "${A[*]}" | ||
|  | 
 | ||
|  | # If IFS is unset, the parameters are separated by spaces | ||
|  | unset IFS | ||
|  | recho "${A[*]}" | ||
|  | 
 | ||
|  | recho "${A[@]}" | ||
|  | recho ${A[@]} | ||
|  | 
 | ||
|  | IFS='/' | ||
|  | A=(bob 'tom dick harry' joe) | ||
|  | set ${A[*]} | ||
|  | recho $# | ||
|  | recho $1 | ||
|  | recho $2 | ||
|  | recho $3 | ||
|  | 
 | ||
|  | A=(bob 'tom dick harry' joe) | ||
|  | set ${A[*]} | ||
|  | recho $# | ||
|  | recho $1 | ||
|  | recho $2 | ||
|  | recho $3 | ||
|  | 
 | ||
|  | A=(bob 'tom dick harry' joe) | ||
|  | set ${A[@]} | ||
|  | recho $# | ||
|  | recho $1 | ||
|  | recho $2 | ||
|  | recho $3 | ||
|  | 
 | ||
|  | A=(bob 'tom dick harry' joe) | ||
|  | set ${A[@]} | ||
|  | recho $# | ||
|  | recho $1 | ||
|  | recho $2 | ||
|  | recho $3 | ||
|  | 
 | ||
|  | # according to POSIX.2, unquoted $* should expand to multiple words if | ||
|  | # $IFS is null, just like unquoted $@ | ||
|  | IFS='' | ||
|  | A=(bob 'tom dick harry' joe) | ||
|  | set "${A[*]}" | ||
|  | recho $# | ||
|  | recho $1 | ||
|  | recho $2 | ||
|  | recho $3 | ||
|  | 
 | ||
|  | A=(bob 'tom dick harry' joe) | ||
|  | set ${A[*]} | ||
|  | recho $# | ||
|  | recho $1 | ||
|  | recho $2 | ||
|  | recho $3 | ||
|  | 
 | ||
|  | A=(bob 'tom dick harry' joe) | ||
|  | set ${A[@]} | ||
|  | recho $# | ||
|  | recho $1 | ||
|  | recho $2 | ||
|  | recho $3 | ||
|  | 
 | ||
|  | # if IFS is unset, the individual positional parameters are split on | ||
|  | # " \t\n" if $* or $@ are unquoted | ||
|  | unset IFS | ||
|  | A=(bob 'tom dick harry' joe) | ||
|  | set ${A[*]} | ||
|  | recho $# | ||
|  | recho $1 | ||
|  | recho $2 | ||
|  | recho $3 | ||
|  | 
 | ||
|  | A=(bob 'tom dick harry' joe) | ||
|  | set ${A[@]} | ||
|  | recho $#                                               | ||
|  | recho $1 | ||
|  | recho $2 | ||
|  | recho $3 | ||
|  | 
 | ||
|  | # but not for "$@" or "$*" | ||
|  | A=(bob 'tom dick harry' joe) | ||
|  | set "${A[*]}" | ||
|  | recho $# | ||
|  | recho $1 | ||
|  | recho $2 | ||
|  | recho $3 | ||
|  | 
 | ||
|  | A=(bob 'tom dick harry' joe) | ||
|  | set "${A[@]}" | ||
|  | recho $# | ||
|  | recho $1 | ||
|  | recho $2 | ||
|  | recho $3 | ||
|  | 
 | ||
|  | # these should both expand the value of A to multiple words | ||
|  | A=(a b c d e) | ||
|  | IFS="" | ||
|  | recho ${A[@]} | ||
|  | recho "${A[@]}" | ||
|  | 
 | ||
|  | # this example is straight from the POSIX.2 rationale and adapted to arrays | ||
|  | A=(foo bar bam) | ||
|  | 
 | ||
|  | recho "${A[@]}" | ||
|  | recho "${A[*]}" | ||
|  | 
 | ||
|  | unset IFS | ||
|  | 
 | ||
|  | recho "${A[@]}" | ||
|  | recho ${A[@]} | ||
|  | recho "${A[*]}" |