Quelques-uns de mes scripts (changement de mappage de touches, ajout de clés publiques) doivent agir différemment dans une console virtuelle et dans un xterm. À quoi sert le vrai code
#!/bin/ksh
if [[ in_a_virtual_console ]]; then
...
else
...
fi
shell
command-line
terminal
xterm
John Baber-Lucero
la source
la source
Si vous vouliez distinguer les shells interactifs des shells non interactifs, utilisez
test
le support intégré de pour le détecter (vous ne savez pas si ksh l'a, mais le binaire de coreutils le prend également en charge):Si vous vouliez vraiment savoir si vous êtes sur un tty / pty / pts ou autre chose, analysez la sortie de
tty
:la source
Cela dépendra du système d'exploitation. Pour Linux, vous pouvez faire ceci:
Bien entendu, cela suppose que vous n'avez pas modifié la
TERM
variable d'environnement vous-même, qui est automatiquement définie surlinux
uniquement lorsque vous vous connectez à une console virtuelle (sous Ubuntu, elle est définie surxterm
dans les applications de console, mais cela peut varier selon les systèmes d'exploitation). Vérifiez le contenu de TERM dans les différentes applications que vous utilisez et définissez-les comme il convient.la source