Alguns dos meus scripts (alteração do mapa de teclas, adição de chave pública) precisam agir de maneira diferente quando em um console virtual e em um xterm. Qual é o código real para
#!/bin/ksh
if [[ in_a_virtual_console ]]; then
...
else
...
fi
shell
command-line
terminal
xterm
John Baber-Lucero
fonte
fonte
Se você pretendia distinguir os shells interativos dos não interativos, use
test
o suporte embutido para detectá-lo (não tenho certeza se o ksh o possui, mas o binário do coreutils também o suporta):Se você realmente quis dizer se está em um tty / pty / pts ou outra coisa, analise a saída em
tty
:fonte
Isso vai depender do sistema operacional. Para Linux, você pode fazer isso:
Obviamente, isso pressupõe que você não alterou a
TERM
variável de ambiente, que é definida automaticamentelinux
somente quando você faz login em um console virtual (no Ubuntu, ele é definidoxterm
em aplicativos de console, mas isso pode variar entre os sistemas operacionais). Verifique o conteúdo do TERM nos vários aplicativos que você está usando e defina conforme apropriado.fonte