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

Obtener el directorio de inicio por nombre de usuario

Quiero obtener el home dir de cualquier usuario con echo

echo ~puchuu
>> /home/puchuu

Pero no puedo usar la variable

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

Respuestas (5)

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

Puedes usar eval:

eval echo ~$USER

Pero vea el comentario de Andrew y la respuesta de glenn más abajo.

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

Esto podría funcionar para usted:

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

Esto también funcionará con usuarios que no sean usted. Por ejemplo,

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

Parece que usted es ese usuario – ¿por qué no

echo $HOME

?

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

No sé si ayuda, pero colocar la tilde fuera de la expresión funciona en ZSH pero no en Bash:

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

Una vez que inicie la sesión, ejecute cd para ir a su directorio personal, y luego ejecute pwd para imprimir el directorio de trabajo.