У меня есть сценарий bash, где я использую ssh
для подключения к другому серверу и выполнения некоторых команд там. Я нашел некоторые сайты, что ошибка (Warning: no access to tty (Bad file descriptor). Thus no job control in this shell.
) - это дружеское сообщение, но мой скрипт bash «застревает». После появления этого сообщения другие команды не выполняются. Другие форумы сказали использовать ssh -t
, чтобы подавить сообщение, но оно не работает для меня. Мой код выглядит примерно так:Как избавиться от «отсутствия доступа к tty (Bad file descriptor)» в bash?
.
.
.
stty -echo
sshpass "pwd" ssh -o StrictHostKeyChecking=no [email protected] 'su -lc "rm -rf tmp"' 2>/dev/null
stty echo
.
.
.
Причина, почему я использую stty-echo
потому, что мне нужно, чтобы переключить пользователей на корень и пароль отображается на терминале (который я не хочу). Я получаю сообщение об ошибке (Warning: no access to tty (Bad file descriptor). Thus no job control in this shell.
) после ввода пароля для root на сервере подключения (ip: 1.1.1.1).
Любые предложения? Дайте мне знать, если потребуется дополнительное объяснение. Благодаря! (Моя версия Баш является GNU Баш версии 3.2.51 (1))
EDIT
Сообщение об ошибке я получаю при удалении 2>/dev/null
является:
Warning: no access to tty (Bad file descriptor).
Thus no job control in this shell.
stty: standard input: Invalid argument
С помощью опции '-t' избавиться от сообщения? – arco444
@ arco444 Уже пробовал, не избавляется от проблемы – Alias