Como posso fazer o meu prompt mostrar o diretório atual e o diretório anterior

4

Eu editei o arquivo .bashrc

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


else
    PS1='[${debian_chroot:+($debian_chroot)}\u:\W $ ] '
fi

, então meu prompt parece com esse user:Pictures:Pictures $

mas eu quero depois do meu nome de usuário para mostrar meu diretório anterior.

Eu sei que com o comando basename $(dirname 'pwd') eu posso extrair o diretório anterior.

Existe alguma maneira de usá-lo para que meu prompt seja assim?

user:prevDir:Pictures $

muito obrigado (e desculpe se o meu inglês ou terminologia não é muito bom eu sou novo no Ubuntu)

    
por l.g.karolos 20.02.2016 / 17:33

1 resposta

2

Substitua o primeiro \W por ${OLDPWD/\/home\/$USER/\~} :

PS1='${debian_chroot:+($debian_chroot)}\[3[01;32m\]\u\[3[00m\]:\[3[01;36m\]${OLDPWD/\/home\/$USER/\~}:\[3[01;34m\]\W \[3[00m\]$ '
~$ cd tmp
~/tmp$ PS1='${debian_chroot:+($debian_chroot)}\[3[01;32m\]\u\[3[00m\]:\[3[01;36m\]${OLDPWD/\/home\/user/\~}:\[3[01;34m\]\W \[3[00m\]$ '
user:~:tmp $ 

${OLDPWD/\/home\/$USER/\~} é uma expansão de parâmetro que substitui uma possível expansão de /home/$USER no início de $OLDPWD com ~ , para imprimir ~ em vez do caminho completo do diretório base do usuário (imitando o comportamento do prompt padrão).

Se isso não for desejado, substitua \W apenas por $OLDPWD :

PS1='${debian_chroot:+($debian_chroot)}\[3[01;32m\]\u\[3[00m\]:\[3[01;36m\]$OLDPWD:\[3[01;34m\]\W \[3[00m\]$ '
~$ cd tmp
~/tmp$ PS1='${debian_chroot:+($debian_chroot)}\[3[01;32m\]\u\[3[00m\]:\[3[01;36m\]$OLDPWD:\[3[01;34m\]\W \[3[00m\]$ '
user:/home/user:tmp $ 
    
por kos 20.02.2016 / 18:16