web-dev-qa-db-fra.com

Obtenir le répertoire personnel par nom d'utilisateur

Je veux obtenir le répertoire personnel de n'importe quel utilisateur avec écho

echo ~puchuu
>> /home/puchuu

Mais je ne peux pas utiliser variable

echo ~$USER
>> ~puchuu
echo `echo ~$USER`
>> ~puchuu
80
puchu

Vous pouvez utiliser eval:

eval echo ~$USER

Mais voir le commentaire de Andrew et la réponse de glenn ci-dessous.

83
choroba

Cela pourrait fonctionner pour vous:

homedir=$( getent passwd "$USER" | cut -d: -f6 )

Cela fonctionnera également sur des utilisateurs autres que vous. Par exemple,

homedir=$( getent passwd "someotheruser" | cut -d: -f6 )
60
glenn jackman

Il semble que vous soyez cet utilisateur - pourquoi pas

echo $HOME

?

12
greenoldman

Je ne sais pas si ça aide, mais placer le tilde en dehors de l'expression fonctionne sur ZSH mais pas sur Bash:

echo ~`echo $USER`
1
Pedro Penna

Une fois que vous vous êtes connecté, exécutez cd pour accéder à votre répertoire personnel, puis exécutez pwd pour imprimer le répertoire de travail.

0
Vinoth Hari