2012-10-06 15:17:31 +0000 2012-10-06 15:17:31 +0000
86
86

Obtenir le répertoire d'origine par nom d'utilisateur

Je veux obtenir le home dir de n'importe quel utilisateur avec l'écho

echo ~puchuu
>> /home/puchuu

Mais je ne peux pas utiliser la variable

echo ~$USER
>> ~puchuu
echo `echo ~$USER`
>> ~puchuu

Réponses (5)

90
90
90
2012-10-06 15:21:58 +0000

Vous pouvez utiliser eval :

eval echo ~$USER

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

68
68
68
2012-10-06 18:50:27 +0000

Cela pourrait fonctionner pour vous :

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

Cela fonctionnera également pour les utilisateurs qui ne sont pas vous. Par exemple,

homedir=$( getent passwd "someotheruser" | cut -d: -f6 )
14
14
14
2014-12-18 16:08:59 +0000

Il semble que vous soyez cet utilisateur – pourquoi pas

echo $HOME

?

1
1
1
2016-07-12 18:00:01 +0000

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

echo ~`echo $USER`
```.
0
0
0
2016-08-15 10:32:47 +0000

Une fois connecté, lancez cd pour accéder à votre répertoire personnel, puis lancez pwd pour imprimer le répertoire de travail.