Qual é a melhor prática de customizar o prompt do Bash (também conhecido como a variável de ambiente PS1)?

2

Estou tentando adicionar o nome da ramificação do Git ao meu prompt do Bash, alterando a variável PS1 assim:

PS1='echo "$PS1" | sed 's/\\\$ $/\$(__git_ps1)\\\$ /''

E, se bem entendi, não é recomendado atualizar ~/.bashrc para fins de personalização. Todos os artigos que encontrei sugerem a atualização de .profile ou .bash_profile para tais fins. Então estou procurando um lugar perfeito para colocar essa linha.

Estes são os lugares que eu já experimentei até agora:

  • .profile : não originado por gnome-terminal
  • .bash_profile : não originado por gnome-terminal
  • .bash_login : não originado por gnome-terminal
  • .bash_aliases : funciona, mas não acho que PS1 tenha algo a ver com aliases

Estou usando o Ubuntu Desktop e trabalho em gnome-terminal ou byobu , por isso preciso encontrar um arquivo que é originado quando inicio bash em um ambiente X. Então eu olhei em .bashrc para outros arquivos que ele origina depois de atribuir um valor a PS1 . Existem .bash_aliases e /usr/share/bash-completion/bash_completion que eu não acho que sejam adequadas para esse propósito.

Quais são as outras opções? E qual é a melhor prática de personalizar o prompt do Bash?

    
por Sah 13.03.2015 / 06:21

2 respostas

2

De acordo com o seguinte HOWTO, seu .bashrc é realmente o melhor lugar para ajustar $ PS1:

the PS1 string should be set in .bashrc. this is because non-interactive bashes go out of their way to unset PS1. the bash man page tells how the presence or absence of PS1 is a good way of knowing whether one is in an interactive vs non-interactive (ie script) bash session.

[...]

therefore it should be stressed that PS1=..blah.. should be in .bashrc and not .profile.

Fonte: link

    
por Sylvain Pineau 13.03.2015 / 09:12
0

Concordo com @ sylvain-pineau que ele deve estar localizado em .bashrc.

Estou usando um script de shell do git-prompt que eu associei no github. Funciona muito bem com git, svn e hg. Ele mostra em qual ramificação você está, quais arquivos são novos, quais arquivos são alterados (em cores diferentes) e o status do último comando bash.

Você pode baixá-lo assim:

wget https://raw.githubusercontent.com/stalet/git-prompt/master/git-prompt.sh
chmod +x git-prompt.sh

Em seguida, no .bashrc, estou usando um teste para ver se meu script do git-prompt está disponível e, em seguida, o forneço:

[[ -s ~/config/git-prompt.sh ]] && source ~/config/git-prompt.sh

Aviso de isenção de responsabilidade, eu sou um commiter do projeto github do git-prompt.

    
por stalet 13.03.2015 / 09:47