| # 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[*]}" |