変数に含めることができるさまざまなパラメータ間を拡張しますbash
PS1
。\w
現在の作業ディレクトリである$ HOMEはチルダに短縮されます(PROMPT_DIRTRIM変数値を使用)。
で述べたようにバッシュマニュアル。
Myは(で指定されたのと同じ値)$HOME
に設定されますが、inの拡張はIがディレクトリにあるときの状況を提供します。したがって、「チルダに省略」されません。/home/myuser/
/etc/passwd
\w
PS1
/home/myuser
$HOME
私はUbuntu 16.04とGNU bash, version 4.3.48(1)-release (x86_64-pc-linux-gnu)
。
何が問題なの?\w
現在のディレクトリパスの実際のコピーのソースは何ですか?
答え1
末尾/
のbashは/home/myuser/
混乱しています。削除すると正常な動作が見られると思います。
スラッシュはディレクトリ名の一部ではなく、パス区切り文字です。そこにあってはならず/etc/passwd
、あってもいけません$HOME
。
次のコマンドを使用して、ファイルに触れることなくこの理論をテストできます。
HOME=/home/myuser
これにより、プロンプトにチルダが表示されます。