Skip to content

Instantly share code, notes, and snippets.

@ormaaj
Last active December 21, 2015 23:19
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
Star You must be signed in to star a gist
Embed
What would you like to do?
Effect of flattening vector expansions in assignments.
4.2.45(1)-release
var=${a[*]} ... one two three four
var="${a[*]}" ... one:::two:three:::four
var=$* ... one:::two:three:::four
var="$*" ... one:::two:three:::four
var=${a[@]} ... one two three four
var="${a[@]}" ... one:::two three:::four
var=$@ ... one two three four
var="$@" ... one:::two three:::four
4.3.0(1)-beta
var=${a[*]} ... one:::two:three:::four
var="${a[*]}" ... one:::two:three:::four
var=$* ... one:::two:three:::four
var="$*" ... one:::two:three:::four
var=${a[@]} ... one:::two three:::four
var="${a[@]}" ... one:::two three:::four
var=$@ ... one:::two three:::four
var="$@" ... one:::two three:::four
#!/usr/bin/env bash
function expassign {
set -f
typeset -a a
a+=("$@")
typeset var asn IFS=
while IFS= read -r asn; do
IFS=: command eval "$asn"
printf '%-14s... %s\n' "$asn" "$var"
done <<\EOF
var=${a[*]}
var="${a[*]}"
var=$*
var="$*"
var=${a[@]}
var="${a[@]}"
var=$@
var="$@"
EOF
}
${ZSH_VERSION+:} false && emulate ksh
expassign one:::two three:::four
# vim: set fenc=utf-8 ff=unix ft=sh :
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment