Não requer tela. Vamos experimentar:
TERM=dumb /etc/init.d/ntp status # no [OK]
/etc/init.d/ntp status | cat # also no [OK]
Isso também deixa de fora o [OK]
. Já que a saída difere com base na configuração TERM ( dumb
e screen
dropam o [OK]
), você pode fingir que tem um terminal completo em vez de tela:
TERM=xterm /etc/init.d/ntp status
E parece detectar também se está conectado a um terminal. Quando você canaliza a saída para outro processo, o [OK]
desaparece.
Suponho que a razão para isso é que, devido ao uso de códigos de escape para o [OK]
, existe uma verificação que impede seu uso em ambientes "não-salvos". As sequências de escape não adicionam nada, mas podem atrapalhar a saída.
A verificação da capacidade do terminal é feita em /lib/lsb/init-functions
. Existe uma função chamada log_use_fancy_output
que faz uso de tput
:
tput
The tput utility uses the terminfo database to make the values of terminal-dependent capabilities and information available to the shell
Emite os dois comandos a seguir:
tput hpa 60
tput setaf 1
De tput: Controle de terminal portátil e Bash Prompt HOWTO - Movimento de Cores e Cursores :
hpa - Move cursor to column #1
setaf [1-7] - Set a foreground colour using ANSI escape
Em particular, log_use_fancy_output
verifica se está conectado a um terminal. Em seguida, ele verifica se TERM está vazio ou configurado como mudo e se essas duas operações tput
são bem-sucedidas. Se isso for bem-sucedido, o [OK]
será impresso, caso contrário, o [OK]
será ignorado.