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

Получить домашний каталог по имени пользователя

Я хочу получить домашнее пиратство любого пользователя с эхом

echo ~puchuu
>> /home/puchuu

Но я не могу использовать переменную

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

Ответы (5)

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

Вы можете использовать eval:

eval echo ~$USER

Но смотрите комментарий Эндрю и ответ Глен ниже.

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

Это может сработать на тебя:

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

Это также сработает для пользователей, которые не являются вами. Например,

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

Похоже, вы тот самый пользователь – почему бы не

echo $HOME

?

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

Не знаю, помогает ли это, но размещение тильды вне выражения работает на ZSH, но не на Bash:

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

После входа в систему запустите cd, чтобы перейти в домашний каталог, затем запустите pwd, чтобы распечатать рабочий каталог.

Похожие вопросы

6
10
11
5
7