Comando prompt caracteres especiais [duplicado]

0
    

Esta pergunta já tem uma resposta aqui:

    
  •              Por que o echo -e “\\\ SOME_TEXT” 'é exibido apenas uma barra invertida?                                      1 resposta                          
  •     

Ao definir o valor do prompt de comando principal (PS1), os dois casos a seguir

export PS1="\u"
export PS1="\u"

fornece o mesmo resultado:

root

como uma string de prompt de comando. Como o \u e \u é diferente se os dois resultados forem idênticos? Não deve o \u produzir apenas \u , pois \ denota a própria barra invertida?

    
por Ringger81 10.01.2018 / 19:33

1 resposta

1

Nas cadeias de aspas duplas do bash, as barras invertidas são preservadas se o caractere a seguir não precisar escapar (somente " ' $ \ deve ter escapado).

  • Por exemplo, foo="\$bar" resultará em $bar porque $ precisa ser ignorado.
  • No entanto, foo="\%bar" resultará em \%bar porque % não precisa ter escape.

Portanto, tanto PS1="\u" como PS1="\u" resultarão em $ PS1 com o valor \u .

O código \u dentro de $ PS1 é expandido para seu nome de usuário muito mais tarde - não ao atribuir a variável, mas sempre que o prompt é exibido.

    
por 10.01.2018 / 21:15

Tags