Казалось бы, простой вопрос, который дает слегка нежелательные результаты.
Запустите putty для запуска скрипта на удаленном сервере Linux, который требует ввода данных пользователем.
Удаленный скрипт выполняет read -p "Please enter name" NAME
Я могу использовать plink
для выполнения скрипта по SSH, ниже показаны следующие попытки и проблемы:- Обратите внимание, что -load ns
- это загрузить сеанс, который не существует, т.е. убедитесь, что по умолчанию не используются
1) plink.exe -load ns <ip_addr> -l <user> -pw <password> <script path/name>
Проблема) Не разрешает / не показывает ввод пользователя, т.е. он не интерактивен.
2) Добавьте -t
чтобы выделить pty:-
plink.exe -t -load nc <ip_addr> -l <user> -pw <password> <script path/name>
Проблема) Хорошо, теперь пользовательский ввод можно увидеть, но я получаю Ctrl+H (^ H) когда нажата клавиша возврата, хорошо, если пользователь не ошибся!
3) Используйте замазку вместо сохраненного сеанса
putty.exe -load "SavedSession"
Проблема) (а) Откройте новое окно, не слишком большое, но не такое приятное. (б) сохраненный сеанс не может быть легко перемещен. (c) Получите запрос пароля, не можете предоставить пароль, как в случае с plink, я знаю, я знаю, используйте ключи, но это закрытая частная сеть, и с ключами проще не беспокоиться!
Поэтому в идеале я хотел бы, чтобы SSH выполнялся в строке, то есть из оболочки командного файла / командной строки, в которой я нахожусь, не запрашивая имя пользователя / пароль, запуская сценарий linux и позволяя работать подсказкам и delete / backspace.
Большое спасибо за любые идеи / решения заранее.