Comportamento estranho do valor do Terminal PS1 no Mac versus Ubuntu

1

No meu mac e no Ubuntu, tenho meus valores de PS1 definidos abaixo:

export PS1='\[\e[1;31m\]\d\[\e[0m\] \[\e[1;32m\]\u  \W\[\e[0m\] \[\e[1;36m\]>\[\e[0,\] \[$(tput sgr0)\]'

No Ubuntu, o prompt do terminal parece bem. Mas no meu Mac um extra "B" é colocado, como abaixo:

Mon Jan 16 DrizzutoJr  ~ >B

Estou supondo que o Mac e o Ubuntu lidem com o valor de forma ligeiramente diferente. Alguém pode explicar o que está acontecendo e como consertá-lo?

    
por user3299745 16.01.2017 / 09:16

1 resposta

1

Esse \[\e[0,\] é suspeito, pois o texto em anexo escape , não corresponde a uma sequência de escape "ANSI" válida (a vírgula não é um byte final válido ). Pode acontecer de "trabalhar" com VTE (que tem um monte de interessante / colar em suas entranhas), mas em outros terminais, é provável que você tenha um personagem perdido que aparecerá.

Talvez você tenha desejado uma tecla adjacente no teclado, m .

A propósito, $(tput sgr0) provavelmente produzirá o equivalente a \e[0m (usar tput consistentemente em toda a expressão também funcionaria e, embora mais detalhado, talvez mais legível).

Leitura adicional:

por 16.01.2017 / 10:12