Bash $PS1変数のパラメータ

Bash $PS1変数のパラメータ

変数に含めることができるさまざまなパラメータ間を拡張しますbash PS1\w

現在の作業ディレクトリである$ HOMEはチルダに短縮されます(PROMPT_DIRTRIM変数値​​を使用)。

で述べたようにバッシュマニュアル

Myは(で指定されたのと同じ値)$HOMEに設定されますが、inの拡張はIがディレクトリにあるときの状況を提供します。したがって、「チルダに省略」されません。/home/myuser//etc/passwd\wPS1/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

これにより、プロンプトにチルダが表示されます。

関連情報