c=: e= s=' ' failures='' ok='' check_result() { if [ "x$2" = "x$3" ]; then ok=x$ok else failures=x$failures echo "For $1, expected $3 actual $2" fi } IFS=' ' set -- a '' set -- "$@" check_result 'set -- "$@"' "($#)($1)($2)" "(2)(a)()" set -- a '' set -- "$@"$e check_result 'set -- "$@"$e' "($#)($1)($2)" "(2)(a)()" set -- a '' set -- "$@"$s check_result 'set -- "$@"$s' "($#)($1)($2)" "(2)(a)()" IFS="$c" set -- a '' set -- "$@"$c check_result 'set -- "$@"$c' "($#)($1)($2)" "(2)(a)()" test "x$failures" = x