120 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			Text
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			120 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			Text
		
	
	
		
			Executable file
		
	
	
	
	
| # 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[*]}"
 | 
