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

Pobierz katalog domowy według nazwy użytkownika

Chcę uzyskać home dir dowolnego użytkownika za pomocą echo

echo ~puchuu
>> /home/puchuu

Ale nie mogę użyć zmiennej

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

Odpowiedzi (5)

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

Możesz użyć eval:

eval echo ~$USER

Ale zobacz komentarz Andrew i odpowiedź glenn poniżej.

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

To może zadziałać dla Ciebie:

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

Będzie to również działać na użytkownikach, którzy nie są tobą. Na przykład,

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

Wygląda na to, że jesteś tym użytkownikiem – dlaczego nie

echo $HOME

?

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

Nie wiem, czy to pomoże, ale umieszczenie tyldy poza wyrażeniem działa na ZSH, ale nie na Bashu:

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

Po zalogowaniu się, uruchom cd aby przejść do swojego katalogu domowego, a następnie uruchom pwd aby wydrukować katalog roboczy.