Exibir resultado de um comando alinhado à direita no terminal

1

Eu tenho um script que passa por muitas verificações diferentes e uso as funções success , failure definidas em /etc/init.d/functions para mostrar claramente o resultado da ação no terminal.

Isso funciona muito bem, exceto em alguns casos em que imprimo um pouco mais de texto e, em seguida, obtenho a caixa de resultados exibida sobre o meu texto :

/usr/share/app/lib/lib_mylib.so lib[ OK ]o matches as expected

Onde gostaria que fosse exibido:

/usr/share/app/lib/lib_mylib.so lib_mylib.so matches as expected [ OK ]

Olhando em volta, vi que /etc/init.d/functions está usando uma variável RES_COL para posicionar onde imprimir o campo de resultado. Se /etc/sysconfig/init existir, então, RES_COL será obtido, definido por padrão como 60 caracteres.

Eu testei export RES_COL=100 depois de pesquisar /etc/init.d/functions sem sucesso. Além disso, gostaria que o campo de resultados fosse alinhado à direita com a janela do terminal e não tivesse que codificar qualquer valor para isso. Alguma idéia?

    
por fduff 09.02.2015 / 14:55

1 resposta

0

O comando tput pode ser usado para controlar o cursor, supondo que você tenha a variável TERM definida corretamente. Em combinação com as variáveis LINES e COLUMNS , você pode posicionar o cursor onde quiser.

A sintaxe é:

tput cup line column

Por exemplo:

tput cup $((LINES-2)) $((COLUMNS-4));echo "[OK]"
    
por 09.02.2015 / 15:51