web-dev-qa-db-ja.com

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

エコーのあるユーザーの自宅ディレクトリを取得したい

echo ~puchuu
>> /home/puchuu

しかし私は変数を使用することはできません

echo ~$USER
>> ~puchuu
echo `echo ~$USER`
>> ~puchuu
81
puchu

evalを使うことができます:

eval echo ~$USER

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

83
choroba

これはあなたのために働くかもしれません:

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

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

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

あなたがそのユーザーであるようです - なぜでしょ

echo $HOME

12
greenoldman

それが役立つかどうかはわかりませんが、チルダを式の外側に置くことはZSHでは機能しますが、Bashでは機能しません。

echo ~`echo $USER`
1
Pedro Penna

ログインしたら、cdを実行してホームディレクトリに移動し、次にpwdを実行して作業ディレクトリを印刷します。

0
Vinoth Hari