Algunas de mis secuencias de comandos (cambio de mapa de teclas, adición de clave pública) deben actuar de manera diferente cuando están en una consola virtual o en una xterm. ¿Cuál es el código real para
#!/bin/ksh
if [[ in_a_virtual_console ]]; then
...
else
...
fi
shell
command-line
terminal
xterm
John Baber-Lucero
fuente
fuente
Si pretendía distinguir los shells interactivos de los no interactivos, use
test
el soporte incorporado para detectarlo (no estoy seguro si ksh lo tiene, pero el binario de coreutils también lo admite):Si realmente quisiste decir si estás en un tty / pty / pts o algo más, analiza la salida desde
tty
:fuente
Esto dependerá del sistema operativo. Para Linux, podría hacer esto:
Esto, por supuesto, supone que no ha cambiado la
TERM
variable de entorno usted mismo, que se configura automáticamentelinux
solo cuando inicia sesión en una consola virtual (en Ubuntu está configuradoxterm
en aplicaciones de consola, pero esto puede variar entre los sistemas operativos). Verifique el contenido de TERM en las diversas aplicaciones que está utilizando y configúrelo según corresponda.fuente