A resposta curta é fazer
printf "%s\n" $GRAPH
Quando você captura a saída de um comando em uma variável de shell com $(…)
ou '…'
, a última nova linha é removida e printf "%s" …
(ao contrário de echo
) não anexa uma nova linha por padrão. Então, quando você diz printf "%s" $GRAPH
, você está obtendo o próximo prompt do shell na mesma linha que o printf
output.
Em segundo lugar, eu aconselho você a mudar isso para
printf "%s\n" "$GRAPH"
para proteger contra certos personagens engraçados que aparecem em $GRAPH
–– e você está claramente obtendo personagens engraçados.
Em terceiro lugar, você diz "o %
parece estar dentro de uma barra preta". Parece ser um vídeo inverso , no qual as cores do primeiro plano e do fundo são invertidas. Isso pode ser causado por um ou alguns dos caracteres em $GRAPH
. Se tudo o que você fizer até o final do tempo estiver em vídeo inverso, mesmo depois de ter feito as duas etapas acima, tente
printf "%s\n" "$GRAPH"; tput sgr0
tput
exerce a funcionalidade específica do terminal; em muitos casos, escrevendo uma string. sgr0
é o nome abreviado da capacidade exit_attribute_mode
, que define as cores do primeiro plano e do plano de fundo de volta ao normal (e desativa o sublinhado, pisca e quaisquer outros atributos de exibição suportados pelo terminal).