A parte que você mencionou vem antes no .bashrc
, enquanto o que é mencionado na duplicata vem um pouco mais tarde, na parte PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w$ '
. Eles trabalham juntos, apesar de tudo!
Então, o que o código que você menciona diz em termos de inglês simples? Aqui é para referência.
if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
debian_chroot=$(cat /etc/debian_chroot)
fi
Começa com esta parte ${debian_chroot:-}
. Temos essa variável debian_chroot
definida? Em caso afirmativo, faça eco dessa variável, mas, se não, faça eco do que vier depois de -
. E o que vem depois de -
? Nada ! Exatamente isso ! Porque se importar ? E se a variável estiver definida? Então, não precisamos executar o corpo da instrução if e apenas usar debian_chroot
variable como está dentro do prompt PS1 depois. Lembra que eu disse que esses dois pedaços de código funcionam juntos? OK, seguindo em frente.
Na próxima etapa, se avaliarmos a variável como em branco, verificaremos a existência do arquivo /etc/debian_chroot
legível. No Ubuntu 14.04, pelo menos, não há arquivo /etc/debian_chroot
. Então, sempre que você começar o bash, vai "Ah, então o debian_chroot não está definido e não temos esse arquivo lá ... OK, deixe apenas \ u @ \ h: \ w \ $ dentro do prompt!"
Agora, o que acontece se tivermos esse arquivo?
xieerqi:
$ sudo vi /etc/debian_chroot
[sudo] password for xieerqi:
xieerqi:
$ bash
(HELLOWORLD)xieerqi@eagle:~$ echo $debian_chroot
HELLOWORLD
(HELLOWORLD)xieerqi@eagle:~$
OK, rastreie o código novamente: temos debian_chroot
set? Não. Temos esse arquivo /etc/debian_chroot
? Sim, leve seu conteúdo e coloque-os nesse prompt PS1
dos usuários. Parece que foi exatamente o que aconteceu na minha saída, certo?