Se você quiser salvar o estado de PS1
, não há como salvá-lo em algum arquivo. Mas você não precisa obter todo o ~/.bashrc
toda vez que quiser alterar seu prompt. Você só precisa alterar PS1
para isso. Em vez de aliases, basta usar duas funções que configuram PS1
de acordo e salvar o estado (ou melhor, a chamada de função correspondente) em ~/.bashrcpl
:
shortp () {
PS1='${debian_chroot:+($debian_chroot)}\[3[0;32m\]➤\[3[01;34m\] '
echo shortp > ~/.bashrcpl
}
longp () {
if [[ ${EUID} -eq 0 ]]; then
PS1='${debian_chroot:+($debian_chroot)}\[3[0;31m\]\u\[3[0;32m\]@\[3[0;36m\]\h\[3[0;32m\]:\[3[01;34m\]\w\[3[0;31m\]➤\[3[1;31m\]➤\[3[0;32m\]➤\[3[01;34m\] '
else
PS1='${debian_chroot:+($debian_chroot)}\[3[1;31m\]\u\[3[0;32m\]@\[3[0;36m\]\h\[3[0;32m\]:\[3[01;34m\]\w\[3[0;31m\]➤\[3[1;31m\]➤\[3[0;32m\]➤\[3[01;34m\] '
fi
echo longp > ~/.bashrcpl
}
source ~/.bashrcpl
A última linha carrega o último prompt usado (o arquivo é originado e a função apropriada é chamada).
Salvar o estado é necessário apenas para carregar um novo shell com o último prompt definido. Se você não precisar deste recurso, apenas remova as duas linhas com echo
e substitua source ~/.bashrcpl
por shortp
ou longp
, o que você preferir.
Observação: eu removi a verificação de $color_prompt
. A menos que $color_prompt
seja exportado em ~/.bashrc
, ele não estará disponível ao executar uma das funções no shell interativo. Você sempre pode adicionar outra função para um prompt monocromático, se precisar.