やりたい事と問題
bashでは、~hogeで、指定したユーザーのホームディレクトリのパスに展開することとが可能だが、ユーザー名の部分を変数にすると動作しない。チルダ展開が行われないみたい。
$ user=hoge
$ ls -l ~${user}
ls: '~hoge' にアクセスできません: そのようなファイルやディレクトリはありません
解決策
bashに展開させることで、対応は可能。ただ、見た目も悪く長いので、他に良い方法があるといいなぁ。変数や特殊文字を展開コマンドがあればできそうだけど、わからなかった。
$ udir=$(bash -c "echo ~${user}")
$ ls -l ${udir}
なお、zshでは、変数を含むチルダ展開(~${user})も使用可能である様子。