Solaris /bin/sh echo depends on the path variable, even though it is a builtin. The shell will mimick the echo whichever is first in your $PATH. The fact that it is not documented, is a bug; not the behaviour itself. $ PATH=/usr/ucb:/usr/bin; export PATH; echo "a\nb" a\nb $ PATH=/usr/bin:/usr/ucb; export PATH; echo "a\nb" a b $ PATH=; export PATH; echo "a\nb" a b $