Hello,

POSIX requires that the 'cd' command use the $HOME
environment variable (if that is set) when no operand
is given.

It explicitly notes that behavior of 'cd' with no
operand when $HOME is unset is implementation defined.
It then notes:

"A common extension when HOME is undefined is to get
the login directory from the user database for the
invoking user. This does not occur on System V
implementations."

I'm surprised that /bin/sh does not use the user's
home directory from getpwuid() in that case:

$ pwd
/tmp
$ unset HOME
$ cd
cd: HOME not set
$ pwd
/tmp
$

This is the same for /bin/ksh and /bin/csh as well.

Did all these somehow inherit this from System V or
was there a reason why this wasn't implemented?

-Jan

Reply via email to