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

ユーザ名でホームディレクトリを取得

echo

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

ただし、以下の Andrew のコメントと glenn の返信を参照してください。

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

これはあなたにも効くかもしれません。

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

これはあなた以外のユーザーにも有効です。例えば、

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

0x1&

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
6