#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