Невозможно создать ssh с помощью ожидания в ActiveTcl на ПК с Windows

Название похоже на невозможно создать ssh с помощью TCL, ожидающего в ActiveTCL. но я думаю, что столкнулся с другой проблемой...

Я только что установил 32-разрядную версию ActiveTcl 8.5 на свой ПК с Windows 10. После его установки я успешно установил Expect, набрав в командной строке tcl следующее:

teacup install Expect

Следуя руководству о том, как использовать Expect для входа на удаленную машину, мой код дает сбой, когда он пытается использовать команду «spawn». Я сократил свой код до следующих минимальных строк в файле сценария с именем simple_ssh.tcl.

#!/bin/sh
# \
exec tclsh "$0"  ${1+"$@"}
package require Expect
spawn ssh [email protected]
expect "[email protected]'s password:"

Когда я запускаю это с помощью команды tclsh simple_ssh.tcl, я получаю сообщение об ошибке:

Запрос не поддерживается. при выполнении «spawn ssh [email protected]» (файл «simple_ssh.tcl», строка 5) дочерний процесс завершился аварийно

Если вместо этого я просто наберу ssh [email protected] в приглашении tcl, удаленная машина ответит ожидаемым приглашением:

[email protected]'s password: 

И сеанс ssh работает, как и ожидалось. Таким образом, он может видеть процесс ssh. Мне кажется, что 'spawn' может быть неправильно интегрирован в Expect. Что еще я могу делать неправильно? Есть ли другой пакет, который мне нужно установить как часть ActiveTcl, чтобы заставить его работать?


person gboy    schedule 01.06.2020    source источник
comment
Более простой шебанг — #!/usr/bin/env tclsh   -  person glenn jackman    schedule 03.06.2020


Ответы (1)


Попробуйте: вызвать ssh [email protected]

person tommy    schedule 25.06.2020