Bash: stty: стандартный ввод: Неподходящий ioctl для устройства при использовании SSH

#bash #ssh #stty

Вопрос:

Я пишу и простой сценарий bash:

 #! /bin/bash echo "IP: $1" sshpass -p 'pass' ssh -t -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no root@$1 lt;lt; EOF  cd ../  sed -i -e 's/x=false/x=true/g' file.txt  echo "*** x has changed! ***"  cat file.txt EOF  

Я запускаю сценарий следующим образом:

баш test.sh ip (я ввожу какой-то IP-адрес сервера).

Скрипт работает, но я получаю это сообщение в терминале:

 IP: ip stty: standard input: Inappropriate ioctl for device *** x has changed! *** x = true  

Почему появляется сообщение stty? что это значит и как я могу заставить его исчезнуть? (Я пробую некоторые предложения, которые нашел в Интернете, но ничего не помогло).

Спасибо!

Комментарии:

1. Есть ли у удаленного хоста сценарий входа в систему или аналогичный, который запускается stty ?

2. На самом деле, я не знаю. Есть ли способ это проверить?

3. Если вы можете войти в систему по SSH, определенно. Без дополнительной информации о том, под какой операционной системой или оболочкой работает удаленная система, мы мало что можем вам рассказать.

Ответ №1:

Добавьте bash , чтобы избежать загрузки файлов инициализации :

 sshpass -p 'pass' ssh -T -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no root@$1 bash lt;lt; EOF  

Вам , похоже, это не нужно -t , так что используйте -T