Eed*_*doh 6 linux shell scripting expect
我知道这里已经提到了这个问题,但该解决方案对我不起作用。
我有这个脚本(让我们将其命名为 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 "mypassword\r"}
expect "Continue to run (y/n)" {send "n\r"}
interact
Run Code Online (Sandbox Code Playgroud)
当我在本地环境中调用此脚本时...
myscript.sh user@host "command1;./command2 parameter1 parameter2"
Run Code Online (Sandbox Code Playgroud)
我在第 7 行收到上述错误(交互)
有任何想法吗??
小智 6
我怀疑期望无法找到(匹配)您发送的模式。
expect "password:" {send "mypassword\r"}
expect "Continue to run (y/n)" {send "n\r"}
Run Code Online (Sandbox Code Playgroud)
再次检查“密码:”和“继续运行(y/n)”的大写字母是否正确。
如果仍然出现相同的错误,您可以尝试使用正则表达式。
尝试在没有脚本的情况下执行正常的 ssh。看看是否有效。有时远程主机标识发生变化,主机有新的 ip 或新的密钥。ssh-keygen -f ~/.ssh/known_hosts -R old_host然后使用或类似的命令可以帮助删除旧密钥。
| 归档时间: |
|
| 查看次数: |
32650 次 |
| 最近记录: |