これは以前に尋ねられたと確信していますが、何も見つかりません。共有マシンには不可解なログイン名があり、シェル変数を使用して、覚えにくいログイン名を人々の本名に置き換えたいと考えています。
たとえば、Omar のログイン名が xyz123 だとします。私がすることができます:
$ omar=xyz123
$ echo ~$omar
そして出力はうまく見えます:
~xyz123
しかし、これを入力すると:
$ ls ~$omar
エラーがあります:
ls: cannot access ~xyz123: No such file or directory
チルダ展開が変数展開の前に発生するためだと思いますが、これを回避する方法がわかりません。
よくわかりませんが、おそらくこの回答は関連しています: How to manual expand a special variable (ex: ~ tilde) in bash