Obter diretório home por nome de usuário

64

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
    
por puchu 06.10.2012 / 17:17

5 respostas

73

Você pode usar eval :

eval echo ~$USER

Mas veja o comentário do Andrew e glenn abaixo.

    
por 06.10.2012 / 17:21
52

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 )
    
por 06.10.2012 / 20:50
9

Parece que você é esse usuário - por que não

echo $HOME

?

    
por 18.12.2014 / 17:08
1

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'
    
por 12.07.2016 / 20:00
-1

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.

    
por 15.08.2016 / 12:32

Tags