Problemas de quebra de linha no bash / php

2

Eu estou escrevendo um programa que imprime linhas coloridas, e quanto mais eu faço com ele, mais eu me vejo trabalhando em torno de problemas de quebra de linha que surgem.

É um tipo de terminal escrito em php, aqui está o prompt:

$return = readline("3[44m3[1;37m{$this->text}>>3[0m ");

Se eu percorrer o histórico, o meu texto sai por 10 caracteres e, se eu digitar 21 caracteres e excluir um, ele apaga toda a linha e começa a excluir os caracteres da linha acima. Isso está em um console com 47 colunas de largura

Se eu tentar adicionar escapes

$return = readline("\[3[44m3[1;37m\]{$this->text}>>\[3[0m\] ");

em seguida, ele imprime os colchetes ... mesmo se eu adicionar barras invertidas duplas.

\[\][timer]>>\[\] 

Eu acho a mesma coisa para echo -e , não tenho certeza do que está acontecendo.

Por fim, se eu modificar o PS1, tudo funcionará bem.

[mike@crest ~]$ export PS1="\[3[44m3[1;37m\][timer]>>\[3[0m\] "
[timer]>>

O que estou perdendo aqui?

    
por Mike Fairhurst 31.10.2012 / 17:20

1 resposta

0

De acordo com o link , a opção checkwinsize pode ser necessária se você percorrer o histórico de comandos:

shopt -s checkwinsize
    
por 12.09.2013 / 21:50