Use $HOME environment variable:
echo “$HOME”
This should work on most machines, but on some environments (this took place with me) this variable is not set. In this case you can use getent
command:
getent passwd <username> | cut -d: -f6
getent passwd “$USER” | cut -d: -f6
getent passwd $(whoami) | cut -d: -f6
getent passwd $(id -un) | cut -d: -f6
The last two commands does not depend on any environment variables. For this to work you need getent installed.
But in rare case, if neither $HOME nor getent available, you can grep /etc/passwd file itself:
grep ^<username> /etc/passwd | cut -d: -f6
Change <username> with actual username or one of “$USER”, $(whoami) or $(id -un). This is the most reliable way.