Как узнать, находится ли текущий сеанс терминала на экране GNU?

У меня есть команда, которую я хочу выполнить в .bashrc , только когда текущий терминал Окно управляется экраном GNU. Как мне это сделать? Есть ли переменная окружения для этого? Раньше у меня было

if [ -n "$WINDOW" ]; then
    command
fi

Но из того, что я могу сказать, $ WINDOW может быть или не быть определено для всего экрана управляемые сеансы.

15
задан PdC 24 April 2017 в 00:10
поделиться

3 ответа

Проверьте переменную окружения $ STY (содержит информацию об экране) или $ TERM, являющуюся «экраном» (вероятно, менее надежно).

18
ответ дан 1 December 2019 в 02:09
поделиться

Проверить переменную $ TERM

1
ответ дан 1 December 2019 в 02:09
поделиться

проверьте $ TERM , для него установлено значение « экран » в сеансе экрана .. (но не 100% гарантия)

ОБНОВЛЕНИЕ

​​в качестве альтернативы вы можете использовать тот факт, что на экране $ TERMCAP содержит подстроку экрана:

[[ $TERMCAP =~ screen ]] && echo "in screen"

также не гарантируется на 100%

UPDATE2

, если ни один из подходов не работает, вы можете найти вдохновение в экранное руководство

4
ответ дан 1 December 2019 в 02:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: