Get user's shell from dscl.

The SHELL environment variable often does not contain the expected value, getting it from the Directory Services is more robust.