Mostra as cores do shell filho no shell pai

1

Eu resolvi isso uma vez, mas não me lembro como o fiz!

No meu processo filho, tenho isto:

echo -e "some control chars"

No meu processo pai, ele mostrará a string simples, sem nenhum estilo de terminal. Não há alguma maneira de interpretar os caracteres de controle provenientes de stdout / stderr de processos filhos no pai?

Para ser específico, eu tenho essa função bash originada no pai:

ql_cyan='3[1;36m'
ql_no_color='3[0m'

function ql_log_colors {
    echo "sourcing quicklock.sh"
    echo -e "${ql_cyan}sourcing quicklock.sh${ql_no_color}";
    echo "${ql_cyan}sourcing quicklock.sh${ql_no_color}";
}

export -f ql_log_colors

se eu executar ql_log_colors no shell atual, obtenho cores!

no entanto, se eu chamar ql_log_colors de um subshell, nenhuma cor será exibida no pai, apenas a string simples "sourcing quicklock.sh".

Como você pode ver, eu tentei 3 variantes do comando echo, todas apenas saídas de texto simples no pai, se as instruções echo forem chamadas de um filho.

    
por Alexander Mills 03.03.2018 / 22:56

0 respostas