![bash $PS1変数のパラメータ](https://rvso.com/image/111989/bash%20%24PS1%E5%A4%89%E6%95%B0%E3%81%AE%E3%83%91%E3%83%A9%E3%83%A1%E3%83%BC%E3%82%BF.png)
変数に含めることができるさまざまなパラメータの間でbash
PS1
、\w
展開します
現在の作業ディレクトリ。$HOME はチルダで省略されます (PROMPT_DIRTRIM 変数の値を使用します)
に記載されているようにBash マニュアル。
My は( で指定された値と同じ)$HOME
に設定されていますが、の展開により、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
末尾の/
in は/home/myuser/
bash を混乱させます。削除すると正常な動作になると思います。
このスラッシュはディレクトリ名の一部ではなく、パス区切り文字です。 には使用すべきではなく/etc/passwd
、 にも使用すべきではありません$HOME
。
次のコマンドを実行するだけで、ファイルに触れることなくその理論をテストできます。
HOME=/home/myuser
その後、プロンプトにチルダが表示されます。