O problema é que os backticks não são substituídos a cada momento mágico, mas apenas uma vez, portanto, seu prompt está configurado para o pwd
em que você estava. Para reexecutar algo toda vez que você digitar um comando, use function precmd()
que deve redefinir seu $PROMPT
. Por exemplo, esta é uma função muito útil que redefine seu prompt de acordo com o diretório atual:
function windows() {
clear
echo -e "Microsoft Windows 2000 [Version 5.00.2195]\n(c) Microsoft Corporation, 1985-2000.\n"
function precmd() {
PWD=$(pwd)
PWD=${PWD/\/usr/\/Program Files}
PWD=${PWD/\/home\/$(whoami)/\/Documents and Settings\Administrator}
PWD=${PWD/\/home/\/Documents and Settings}
PWD=${PWD/\/sbin/\/Windows}
export PS1="C:${PWD//\//\}> "
}
}
... ou use apenas %~
no seu PS1, assim:
PS1=' %n@%m: %~%# '
em que %n
é usuário, %m
é host, %~
é o diretório atual e %#
é um indicador de superusuário.