Detectar se estiver executando em um terminal virtual?

12

Eu gostaria de autologin para tty1 no login e use vlock para bloqueá-lo.

Como posso detectar do Bash se o terminal atual é um terminal virtual do console (por exemplo, tty1 ), para que eu possa colocar a linha vlock em .bash_profile e executá-la somente se efetuar login por tty1 ?

    
por kiri 17.10.2013 / 12:59

2 respostas

13

Você pode usar tty para obter o nome do terminal virtual atual e testá-lo com uma instrução case :

#!/bin/sh

case $(tty) in /dev/tty[0-9]*)
    vlock ;;
esac
    
por 17.10.2013 / 13:33
5

Geralmente, é suficiente simplesmente testar STDIN (FD0):

[ -t 0 ] && echo "TTY available" || echo "No TTY available"
    
por 17.10.2013 / 13:03