Você pode usar eval
:
eval echo ~$USER
Mas veja o comentário do Andrew e glenn abaixo.
Eu quero obter o diretório home de qualquer usuário com eco
echo ~puchuu
>> /home/puchuu
Mas eu não posso usar variável
echo ~$USER
>> ~puchuu
echo 'echo ~$USER'
>> ~puchuu
Isso pode funcionar para você:
homedir=$( getent passwd "$USER" | cut -d: -f6 )
Isso também funcionará em usuários que não são você. Por exemplo,
homedir=$( getent passwd "someotheruser" | cut -d: -f6 )
Parece que você é esse usuário - por que não
echo $HOME
?
Eu não sei se isso ajuda, mas colocar o til fora da expressão funciona no ZSH, mas não no Bash:
echo ~'echo $USER'
Depois de fazer o login, execute cd
para ir ao seu diretório pessoal e, em seguida, execute pwd
para imprimir o diretório de trabalho.