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/tty1tty. -
ps hotty $$(abreviação deps --no-header --format tty --pid $$):pts/10 tty1 -
who who whom | awk '{ print $2 }'(na verdade, isso éwhocom 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: