bash $PS1 变量中的参数

Bow*_*ark 0 bash ubuntu environment-variables working-directory

在可以包含在bash PS1变量中的各种参数之间,\w展开

当前工作目录,$HOME 缩写为波浪号(使用 PROMPT_DIRTRIM 变量的值)

Bash 手册中所述

My$HOME设置为/home/myuser/(在 中指定的相同值/etc/passwd),但是当我在目录中时,\win的扩展会PS1给出。因此,它不是“用波浪号缩写”。/home/myuser$HOME

我将 Ubuntu 16.04 与GNU bash, version 4.3.48(1)-release (x86_64-pc-linux-gnu).

怎么了?\w实际复制当前目录路径的来源是什么?

Jam*_*den 5

尾随//home/myuser/被混淆的bash。我认为如果你删除它,你会看到正常的行为。

该斜杠不是目录名称的一部分;这是一个路径分隔符。它不应该在/etc/passwd,也不应该在$HOME

您可以使用以下方法测试该理论,而无需触及文件:

HOME=/home/myuser
Run Code Online (Sandbox Code Playgroud)

之后波浪号应该出现在您的提示中。