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

Выполнив команду "Бохи -м" из Cygwin не
Преобразование всех файлов в каталоге с помощью FFMPEG
Как остановить терминал bash от добавления частей предыдущих команд в текущую строку?
Как фильтровать вывод команды в OS X
Скрипт Bash, который автоматически меняет раскладки клавиатуры и мыши на основе активного окна
Подключение к сети WiFi с помощью Mac-терминала
Пакетное переименование файлов в каталоге с помощью sed
Windows 10 Ubuntu-создание папки из windows, то доступ из Bash
Scripting: что проще всего извлечь значение в теге XML-файла?
Как запустить команду " cat " в фоновом режиме внутри скрипта
Как я могу SSH в "Bash на Ubuntu на Windows 10"?
Закройте сценарий bash, когда curl получает статус HTTP, отличный от 200
Вывод Grep из нескольких строк в ограниченной среде оболочки
Как автоматически выполнить скрипт при входе в Ubuntu
Solaris 9-команда подсчета слов (wc) дает неправильный вывод

/dev / tty: нет такого устройства или адреса - только в скрипте

я вытягиваю свои волосы из-за этого. Я просмотрел все результаты google для /dev / tty : нет такого устройства или адреса, ни одно из них не относится к тому, что я делаю / ни одно из решений не является успешным.

у меня есть скрипт, который ssh'ES в другую машину (с помощью открытых ключей) и работает сам (с разными параметрами - это не цикл). Вызовите этот rpmInstallScript.bash

в какой-то момент скрипта он запускает rpm-ivh для установки некоторых пакетов RPM. во время при установке одного из этих пакетов в /var/tmp помещается файл rpm-tmp.[6 случайных символов]

этот файл является сценарием, и я думаю, что он выполняется в какой-то момент во время установки rpm.

в сценарии существует несколько вхождений

echo [something] > /dev/tty 

или

echo [something] | tee [something] > /dev/tty.

все эти события не с /dev/телетайп: нет такого устройства или адреса. Если я ssh в машину вручную и либо rpm пакеты самостоятельно, запустите сценарий rpm-tmp или запустите rpmInstallscript.Баш, все нормально работает.

я подключаюсь к удаленной машине с ssh-t, поэтому должен быть tty, правильно?

Я не понимаю, почему это не работает, особенно потому, что делать это вручную, даже без опции-t, работает нормально. Единственное, о чем я могу думать, это то, что это не интерактивная сессия, но /dev/tty все еще должен существовать, правильно?

Edit - ошибка возникает из:

ssh -t root@[machine] -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null <<DONE
./rpmInstallScript.bash

где rpmInstallScript.бить запускает rpm-ivh, результирующий скрипт помещенный в /var/tmp использует > / dev / tty - вот что выходит из строя

редактировать снова :
через -ТТ дает :

tcgetattr: Inappropriate ioctl for device

только при запуске из скрипта-вручную запуск ssh-tt, а затем echo test > / dev / tty работает нормально.

Я могу только предположить, что это неспособность заставить создать tty.

есть ли другой способ "генерировать" tty? Могу ли я просто подделать его, создав файл с именем/dev / tty?

5
задан Brydon Gibson
источник

1 ответов

попробовать -tt посмотреть, работает ли.

от SSH man страницы,

Multiple -t options force tty allocation, even if ssh has no local tty.

2
отвечен hkdtam 2016-06-09 20:15:18
источник

Другие вопросы bash ssh tty