Ubuntu 终端不显示当前文件夹

Ubuntu 终端不显示当前文件夹

所以我有一个脚本来打开带有 2 个选项卡的新终端窗口,但是当我运行它时,这些选项卡中的当前目录不会显示。当使用默认的 ubuntu 的 bashrc 时,它工作正常,但更改\w\W导致当前文件夹不显示,直到使用cd,之后它工作正常。这里有什么问题?

#!/bin/bash
gnome-terminal --tab  --working-directory="/mnt/0000000000/Users/Admin/Desktop/folder1/" --tab  --working-directory="/mnt/0000000000/Users/Admin/Desktop/folder2/"
exit 0

PS1 是:

if [ "$color_prompt" = yes ]; then
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u\[\033[00m\]:\[\033[01;34m\]\W\[\033[00m\]\$ '
else
    PS1='${debian_chroot:+($debian_chroot)}\u:\W\$ '

case "$TERM" in
xterm*|rxvt*)
    PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u: \W\a\]$PS1"
    ;;
*)
    ;;
esac

改变/Desktop/folder1/才能/Desktop/folder1解决问题。由于某种原因,\W对最后一个斜杠很敏感,而\w不是,但像锅这样的路径"~/"在这两种情况下都很好。

答案1

由于某种原因\W对最后一个斜杠敏感,[...]

这个原因记录在 shell 程序的用户手册中:

\W 当前工作目录的基本名称[...]

就您的 shell 而言,基本名称是最后一个斜杠后面的部分。因此,的基本名称/Desktop/folder1folder1,而 的基本名称/Desktop/folder1/是最后一个斜杠后面的零长度字符串。

这并不完全是 POSIX 基本名称的定义,也不是命令basename将告诉您的内容;但这是 Unix 和 Linux 程序中常用的近似值。

相关内容