Existem várias maneiras de determinar isso, sendo três famosos:
-
tty
- imprime o nome do arquivo do terminal conectado à entrada padrão:
Esta função escrita por Sergiy Kolodyazhnyy faz uso de/dev/pts/10 /dev/tty1
tty
. -
ps hotty $$
(abreviação deps --no-header --format tty --pid $$
):pts/10 tty1
-
who who whom | awk '{ print $2 }'
(na verdade, isso éwho
com dois argumentos arbitrários , igual awho -m
- que também corresponde ao trocadilho):pts/10 tty1
Eu suspeito que os valores de TERM
sejam diferentes entre distribuições e até mesmo lançamentos, mas tty
é uma maneira estável e confiável. Eu usaria assim:
if tty|grep -q tty; then
echo "That's a TTY."
else
echo "That's not a TTY."
fi
Parece haver um problema com pelo menos who
em gnome-terminal
, por sorte há um script de wrapper para contornar esta questão.
Links úteis: