Por que o código de notificação de status personalizado Byobu não é exibido em cores?

4

O código abaixo é executado bem no Bash e mostra o texto com a cor de fundo verde apropriada, mas quando eu o adiciono à pasta ~/.byobu/bin/ , ele mostra os caracteres de escape. Algo como [42m [1mAAPL: 30.345 (B [m

#!/bin/sh
echo 'tput setab 2;tput bold'AAPL:'curl -s 'http://download.finance.yahoo.com/d/quotes.csv?s=AAPL&f=sl1d1t1c1ohgv&e=.csv' | cut -d, -f2;tput sgr0'
    
por BuZain 05.09.2012 / 22:14

2 respostas

4

Se estiver usando o backend tmux para o byobu, você precisará usar um formato diferente para os códigos de cores. Felizmente, é menos complicado que o formato screen .

Para definir cores, use #[<color and attribute codes>] . Exemplos:

  • #[default] : restaurar cores padrão (use no final do seu status personalizado).
  • #[fg=red] : defina a cor do primeiro plano para vermelho.
  • #[fg=#ff0000] : defina a cor do primeiro plano como #ff0000 . Aceita apenas minúsculas - FF0000 não funciona.
  • #[bg=black] : torna o fundo preto.
  • #[fg=bold] : torna o texto em negrito . Veja abaixo para mais.
  • #[reverse] : troca as cores do primeiro plano / plano de fundo.

Você pode combiná-los, por exemplo #[fg=white,bold,bg=black] .

Cores nomeadas: black , red , green , yellow , blue , magenta , cyan , white , black , brightblack , brightred , brightgreen , brightyellow , brightblue , brightmagenta , brightcyan , brightwhite

Atributos: dim , underscore , bold , reverse , standout , blinking , hidden , italics

Você também pode usar as variáveis de ambiente $BYOBU_LIGHT , $BYOBU_DARK , $BYOBU_ACCENT e $BYOBU_HIGHLIGHT como cores.

Para brincar com isso, crie um arquivo ~/.byobu/bin/1_hello com o seguinte conteúdo e torne-o executável.

#!/bin/sh
echo "#[reverse]Hello world#[default]"

Isso deve criar uma notificação de status em preto sobre branco que diz "Olá, mundo".

Aqui estão dois exemplos de componentes da barra de status personalizado e os códigos que os produzem:

  • #[fg=#aa77cc,bg=#222222] @XXX.XX #[default]
  • #[fg=white,bg=black] ✉ ️X #[default]

Esta informação provavelmente funcionará apenas se você estiver usando tmux e um shell ativado por cores, embora:)

(Fontes: /usr/lib/byobu/include/colors , /usr/lib/byobu/include/shutil )

    
por 14.08.2018 / 19:44
1

Você precisa de outros especificadores de cor na tela (consulte Manpage of screen (1) ). Então, primeiro você deve salvar o valor em uma variável:

AAPL=$(curl -s 'http://download.finance.yahoo.com/d/quotes.csv?s=AAPL&f=sl1d1t1c1ohgv&=.csv' | cut -d, -f2)

E na segunda etapa, você pode gerar a saída com printf :

printf "
AAPL=$(curl -s 'http://download.finance.yahoo.com/d/quotes.csv?s=AAPL&f=sl1d1t1c1ohgv&=.csv' | cut -d, -f2)
5{= b}%s%s
printf "%pre%5{= b}%s%s%pre%5{-}" "AAPL: " "$AAPL"
5{-}" "AAPL: " "$AAPL"
    
por qbi 15.01.2013 / 15:34