Terminal do Ubuntu não mostra a pasta atual

0

Portanto, eu tenho um script para abrir novas janelas de terminal com 2 guias, mas quando eu o executo, o diretório atual nessas guias não é exibido. Ao usar o bashrc padrão do ubuntu ele funciona bem, mas alterando \w para \W resulta na pasta atual não mostrando até usar cd , depois disso funciona ok. Qual é o problema aqui?

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

PS1s são:

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

e

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

Alterar /Desktop/folder1/ para /Desktop/folder1 resolve as coisas. Por alguma razão, \W é sensível à última barra, enquanto \w não é, mas o caminho como "~/" funciona bem em ambos os casos.

    
por tyrande 18.01.2018 / 15:47

1 resposta

1

For some reason \W is sensitive to that last slash, […]

Esse motivo está documentado no manual do usuário do seu programa shell:

\W the basename of the current working directory […]

O nome de base, no que diz respeito ao seu shell, é a parte seguinte à barra final. O nome de base de /Desktop/folder1 é, portanto, folder1 , enquanto o nome de base de /Desktop/folder1/ é a sequência de comprimento zero que segue a barra final.

Esta não é exatamente a definição POSIX de um nome de base, e não o que o comando basename dirá a você; mas é uma aproximação comumente usada em programas Unix e Linux.

    
por 18.01.2018 / 17:57