spawn_id:派生id exp6未打开



我知道这里已经提到了这个问题,但解决方案对我不起作用。

我有这个脚本(让我们把它命名为myscript.sh(,它在远程环境中生成一个进程,并且应该与它交互

#!/usr/bin/expect
log_user 0
set timeout 10
spawn ssh -o PubkeyAuthentication=no [lindex $argv 0] -n [lindex $argv 1]
expect "password:" {send "mypasswordr"}
expect "Continue to run (y/n)" {send "nr"}
interact

当我在本地环境中调用此脚本时。。。

myscript.sh user@host "command1;./command2 parameter1 parameter2"

我在第7行(交互(上得到了上述错误

有什么想法吗??

我怀疑expect无法找到(匹配(您发送的模式。

expect "password:" {send "mypasswordr"}
expect "Continue to run (y/n)" {send "nr"}

再次检查"密码:"one_answers"继续运行(y/n("是否在正确的CAPS中。

如果仍然出现相同的错误,可以尝试使用正则表达式。

尝试在没有脚本的情况下执行普通ssh。看看它是否有效。有时远程主机标识会发生更改,并且主机有了新的ip或新密钥。然后用ssh-keygen -f ~/.ssh/known_hosts -R old_host或类似的东西删除旧密钥会有所帮助。

我遇到了这个问题,原因是使用了错误的端口。

/usr/bin/expect <<EOF
  spawn ssh-copy-id -i $dest_user@$ip
  expect {
    "yes/no" { 
       send "yesr";exp_continue 
    } "password" { 
       send "$passwdr" 
    } eof { 
       exit
    }
  }
  expect eof

EOF

我也遇到了这个问题,但这是由于我为一个不相关的项目创建/编辑了以下文件:

~/.ssh/config

一旦我删除了它,我所有的脚本都开始工作,我的期望文件也不再有这个问题。

最新更新