On 07/30/2010 12:24 AM, Eric Blake wrote:
+Posix states that behavior is undefined if @command{cd} is given an
+explicit empty argument.  Some shells do nothing, some change to the
+first entry in @env{CDPATH}, some change to @env{HOME}, and some exit
+the shell rather than returning an error.  Unfortunately, this means
+that if @samp{$var} is empty, then @samp{cd "$var"} is less predictable
+than @samp{cd $var} (at least the latter is well-behaved in all shells
+at changing to @env{HOME}, although this is probably not what you wanted
+in a script).  You should check that a directory name was supplied
+before trying to change locations.

bash's behavior is to do nothing.  We may suggest

  cd "${var:-.}"

which is the closest thing to a sensible behavior (better than changing to HOME...).

Paolo

Reply via email to