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

Home-Verzeichnis nach Benutzernamen abrufen

Ich möchte das Homeverzeichnis eines beliebigen Benutzers mit echo

echo ~puchuu
>> /home/puchuu

erhalten, kann aber die Variable

echo ~$USER
>> ~puchuu
echo `echo ~$USER`
>> ~puchuu
``` nicht verwenden.

Antworten (5)

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

Sie können eval verwenden:

eval echo ~$USER

Aber siehe den Kommentar von Andrew und die Antwort von glenn unten.

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

Dies könnte bei Ihnen funktionieren:

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

Dies funktioniert auch bei Benutzern, die nicht Sie sind. Zum Beispiel:

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

Es scheint, dass Sie dieser Benutzer sind – warum nicht

echo $HOME

?

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

Ich weiß nicht, ob es hilft, aber die Tilde außerhalb des Ausdrucks zu setzen, funktioniert unter ZSH, aber nicht unter Bash:

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

Sobald Sie sich angemeldet haben, führen Sie cd aus, um in Ihr Home-Verzeichnis zu wechseln, und führen Sie dann pwd aus, um das Arbeitsverzeichnis zu drucken.