У меня есть сценарий оболочки на сервере A, и у меня есть сценарий оболочки на сервере B. Моя логика написана так, как сценарий оболочки на A выполняется, вызывает сценарий оболочки на сервере B и выполняет его. Я могу получить желаемый результат, когда A выполняет B, но также получаю ошибку вместе с результатом. Сообщение об ошибке:
tput: No value for $TERM and no -T specified
Я использую следующие строки для получения цветного вывода;
RED=`tput setaf 1`
GREEN=`tput setaf 2`
YELLOW=`tput setaf 3`
BLUE=`tput setaf 6`
BOLD=`tput bold`
RESET=`tput sgr0`
Эти строки доступны в сценарии оболочки как в A, так и в B. Когда я запускаю сценарий оболочки в B, регистрируясь на сервере B, желаемый результат появляется вместе с цветом. Когда я вызываю сценарий оболочки из A и выполняю его, я получаю желаемый результат плюс сообщение об ошибке, о котором я упоминал выше.
Можете ли вы помочь в этом отношении?
К вашему сведению, я проверил "echo $TERM"
и вывел 'xterm'
на обоих серверах.
Не уверен, где я ошибаюсь.
ssh serverB scriptB </dev/null | less
вызоветscriptB
, где действительно стандартный вывод скрипта не привязан к терминалу локально. - person tripleee   schedule 31.01.2018