что действительно “экспортирует TERM=linux”, на самом деле делают когда в сценарии

Мой сценарий удара работает дополнительный шумный, когда выполнено в сервере через ssh.

+ sudo apt-get install -yqq nodejs
debconf: unable to initialize frontend: Dialog
debconf: (Dialog frontend will not work on a dumb terminal, an emacs shell buffer, or without a controlling terminal.)
debconf: falling back to frontend: Readline
debconf: unable to initialize frontend: Readline
debconf: (This frontend requires a controlling tty.)
debconf: falling back to frontend: Teletype
dpkg-preconfigure: unable to re-open stdin:

Одно из предложения, которое я видел отправленный там, делало TERM=linux экспорта

Есть ли какое-либо влияние стороны? Это хорошая идея сделать в начале сценария, как это:

#!/bin/bash
set -e
set -x
TERM=linux
7
задан 31 May 2017 в 18:39

3 ответа

Эти export TERM=linux наборы команд эмулятор терминала к linux. В зависимости от среды и возможности консоли Вы используете, некоторые эмуляции будут работать лучше, чем другие.

значение по умолчанию установка TERM для Ubuntu xterm. Можно проверить установку TERM путем выполнения echo $TERM.

Вам, вероятно, придется согласовать с поставщиком приложения, которое Вы запускаете для обнаружения лучше всего рекомендуемого эмулятора терминала для их программы. Большая часть приложения будет ожидать, что Вам уже установили эмулятор на что-то совместимое такой как xterm или linux.

-x набора
настройка отладки А:
Вы обращаетесь к шумному сценарию. Вы получаете подробный вывод из своего сценария из-за set -x настройки, которые используются для отладки. После того как Вы видите то, что происходит, и имейте свой сценарий, выполняющий способ, которым Вы хотите его, Вы могли прокомментировать set -x строка путем размещения # символ перед ним.

-e
набора Эта установка говорит сценарию выходить на ошибке команды. Например, если бы Ваша команда должна была изменить каталог ни на один существующий каталог или перечислять несуществующий файл, то сценарий завершился бы на ошибке, вместо того, чтобы продолжиться к следующей строке.

Ваша проблема с ssh через сервер, в который Вы входите, может привести к этому, по умолчанию сервер пытается соответствовать эмулятору терминала настроек от компьютера, от которого Вы входите в систему. Если это не имеет соответствия, это не знает, какие настройки можно обработать. Для этого необходимо будет использовать эти export TERM команда для определения к серверу, как общаться с Вами.

7
ответ дан 23 November 2019 в 06:15

Нет никакого смысла к установке TERM, если TTY не выделяется. При использовании SSH используйте ssh -t:

 -t      Force pseudo-tty allocation.  This can be used to execute
         arbitrary screen-based programs on a remote machine, which can be
         very useful, e.g. when implementing menu services.  Multiple -t
         options force tty allocation, even if ssh has no local tty.

Примечание эти ошибки:

debconf: (Dialog frontend will not work on a dumb terminal, an emacs shell buffer, or without a controlling terminal.)
...
debconf: (This frontend requires a controlling tty.)
4
ответ дан 23 November 2019 в 06:15

Согласно странице GNU gettext руководства , TERM переменная "... содержит идентификатор для текста window’s возможности". Другими словами, это просто говорит систему, какой терминал Вы, предположительно, используете и как текст на экране должен быть адаптирован.

TERM=linux средства, что Вы, предположительно, собираетесь быть консолью Linux использования, таким образом, вывод будет минималистическим, не могли бы иметь поддержки некоторых языков.

Как muru указанный, действительно необходимо было выделить псевдо tty. Изменение TERM переменная могла бы помочь, но TERM=linux не то, что Вы хотите. Вы не используете фактическую консоль Linux. -t опция для ssh была бы лучшим подходом.

4
ответ дан 23 November 2019 в 06:15

Другие вопросы по тегам:

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