Некоторые из моих сценариев (изменение таблицы ключей, добавление открытого ключа) должны работать по-разному, как в виртуальной консоли, так и в xterm. Какой реальный код для
#!/bin/ksh
if [[ in_a_virtual_console ]]; then
...
else
...
fi
shell
command-line
terminal
xterm
Джон Бабер-Лусеро
источник
источник
Если вы хотели отличить интерактивные оболочки от неинтерактивных, используйте
test
встроенную поддержку для их обнаружения (не уверен, есть ли у ksh, но также поддерживает двоичный файл из coreutils):Если вы действительно имели в виду, используете ли вы tty / pty / pts или что-то еще, проанализируйте вывод
tty
:источник
Это будет зависеть от операционной системы. Для Linux вы можете сделать это:
Это, конечно, предполагает, что вы сами не меняли
TERM
переменную среды, для которой автоматически устанавливается значениеlinux
только при входе в виртуальную консоль (в Ubuntu она устанавливаетсяxterm
в консольных приложениях, но это может варьироваться в зависимости от ОС). Проверьте содержимое TERM в различных используемых вами приложениях и установите их соответствующим образом.источник