У меня есть скрипт bash, где я использую ssh для подключения к другому серверу и запускаю там некоторые команды. Я нашел на некоторых сайтах эту ошибку (Warning: no access to tty (Bad file descriptor). Thus no job control in this shell.) - дружеское сообщение, но мой bash-скрипт застревает. Никакие другие команды не выполняются после появления этого сообщения. Другие форумы говорили, что для подавления сообщения используется ssh -t но он не работает для меня. Мой код выглядит примерно так:

.
.
.
stty -echo
sshpass "pwd" ssh -o StrictHostKeyChecking=no usr@1.1.1.1 'su -lc "rm -rf tmp"' 2>/dev/null
stty echo
.
.
.

Причина, по которой я использую stty-echo заключается в том, что мне нужно переключить пользователей на root, а пароль отображается на терминале (чего я не хочу). Я получаю сообщение об ошибке (Warning: no access to tty (Bad file descriptor). Thus no job control in this shell.) после того, как я ввожу пароль для root на подключаемом сервере (ip: 1.1.1.1).

Какие-либо предложения? Дайте мне знать, если требуется дальнейшее объяснение. Спасибо! (Моя версия bash - это версия GNU bash 3.2.51(1))

Сообщение об ошибке, которое я получаю при удалении 2>/dev/null :

Warning: no access to tty (Bad file descriptor).
Thus no job control in this shell. 
stty: standard input: Invalid argument

1 ответ1

0

Как насчет передачи -s /bin/bash в su?

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .