O que o bashrc PS1 verifica [“$ PS1” = “\\ s - \\ v \\\ $”] significa?

1

No arquivo / etc / bashrc no Fedora / Red Hat eu vejo a seguinte linha:

[ "$PS1" = "\s-\v\\$ " ] && PS1="[\u@\h \W]\$ "

Qual é a verificação feita em [ "$PS1" = "\s-\v\\$ " ] e por que o PS1 é definido apenas se o teste for bem-sucedido?

    
por Akilan 10.08.2017 / 12:01

2 respostas

1

A verificação sendo feita é uma comparação de string = . É comparar o valor de $ PS1 com a string \s-\v\$ , em que as barras invertidas precisam ser escapadas na string para que sejam comparadas às barras invertidas reais, em vez de tentar escapar do caractere seguinte.

A sintaxe && é a parte que define o PS1 somente se o teste anterior for bem-sucedido.

A lógica geral aqui é, aparentemente, atualizar o PS1 somente se ele foi previamente configurado para um valor específico.

    
por 10.08.2017 / 13:16
1

(Eu me debatia se isso seria uma resposta, já que é uma moda, mas aqui vai ...)

Apenas uma teoria, mas o primeiro formulário (por exemplo, bash-3.2.1$ ) se parece com o aviso que muitas vezes vejo quando conectado como root ou outra conta "não-usuário". A segunda forma predominante (por exemplo, [joeblow@myhost /tmp]$ ) é mais centrada no usuário. Então, talvez isso seja para detectar quando vai de uma conta do sistema para a conta do usuário ... então, e só então, mude para um prompt mais apropriado. Caso contrário, assuma que alguém desejaria preservar o prompt atual.

    
por 10.08.2017 / 16:12

Tags