我想使用 echo 获取任何用户的主目录
echo ~puchuu
>> /home/puchuu
但我不能使用变量
echo ~$USER
>> ~puchuu
echo `echo ~$USER`
>> ~puchuu
答案1
答案2
这可能对你有用:
homedir=$( getent passwd "$USER" | cut -d: -f6 )
这也适用于您以外的用户。例如,
homedir=$( getent passwd "someotheruser" | cut -d: -f6 )
答案3
看来你就是那个用户——为什么不呢
echo $HOME
?
答案4
ZSH 用户可以将波浪号 ( ~
) 放在表达式之外。这在 Bash 上不起作用:
echo ~`echo $USER`