根据用户名获取主目录

根据用户名获取主目录

我想使用 echo 获取任何用户的主目录

echo ~puchuu
>> /home/puchuu

但我不能使用变量

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

答案1

您可以使用eval

eval echo ~$USER

但看到安德鲁的评论和格伦下面的回复。

答案2

这可能对你有用:

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

这也适用于您以外的用户。例如,

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

答案3

看来你就是那个用户——为什么不呢

echo $HOME

答案4

ZSH 用户可以将波浪号 ( ~) 放在表达式之外。这在 Bash 上不起作用:

echo ~`echo $USER`

相关内容