set -- abc "d e"

echo 'Testing: !IFS $*'
unset IFS; for a in $*; do echo ".$a."; done
echo 'Testing: !IFS $@'
unset IFS; for a in $@; do echo ".$a."; done
echo 'Testing: !IFS "$*"'
unset IFS; for a in "$*"; do echo ".$a."; done
echo 'Testing: !IFS "$@"'
unset IFS; for a in "$@"; do echo ".$a."; done

echo 'Testing: IFS="" $*'
IFS=""; for a in $*; do echo ".$a."; done
echo 'Testing: IFS="" $@'
IFS=""; for a in $@; do echo ".$a."; done
echo 'Testing: IFS="" "$*"'
IFS=""; for a in "$*"; do echo ".$a."; done
echo 'Testing: IFS="" "$@"'
IFS=""; for a in "$@"; do echo ".$a."; done

echo 'Testing: !IFS v=$*'
unset IFS; v=$*; echo "v='$v'"
echo 'Testing: !IFS v=$@'
unset IFS; v=$@; echo "v='$v'"
echo 'Testing: !IFS v="$*"'
unset IFS; v="$*"; echo "v='$v'"
echo 'Testing: !IFS v="$@"'
unset IFS; v="$@"; echo "v='$v'"

echo 'Testing: IFS="" v=$*'
IFS=""; v=$*; echo "v='$v'"
echo 'Testing: IFS="" v=$@'
IFS=""; v=$@; echo "v='$v'"
echo 'Testing: IFS="" v="$*"'
IFS=""; v="$*"; echo "v='$v'"
echo 'Testing: IFS="" v="$@"'
IFS=""; v="$@"; echo "v='$v'"

# Note: in IFS="" v=$@ and IFS="" v="$@" cases, bash produces "abc d e"
# We produce "abcd e"

echo Finished