Você pode usar as diferenças no status de retorno de tty
para ajudá-lo.
if tty -s;
then
# running in a terminal
...
fi
( tty -s
executa o comando tty
silenciosamente)
Sair do status:
- 0 se a entrada padrão for um terminal
- 1 se a entrada padrão não for um terminal
- 2 se receber argumentos incorretos
- 3 se ocorrer um erro de gravação
Ou você pode usar os testes internos do shell para verificar se a entrada / saída padrão é de / para um terminal:
if [ -t 0 ]; # stdin
then
# running in a terminal
...
fi