我试图运行期望脚本但是我有一个错误:
send: spawn id exp4 not open
while executing
"send "password"
我的脚本非常简单:
#!/usr/bin/expect -f
#!/usr/bin/env expect
#!/usr/bin/env export
#!/bin/sh
#!/bin/bash
spawn sftp -o IdentityFile=/home/localUser/MyPrivKeys_open.ppk user@123.123.123.123
expect "sftp.gatewayEnter passphrase for key '/home2/localUser/MyPrivKeys_open.ppk':"
send "passphrase\r"
expect "sftp>"
send "cd /home/localUser/localPath \r"
expect "sftp>"
send "mget myfile.xml /home/localUser/localPath \r"
set timeout 5
interact
我所做的是在notepad.exe中编辑我的期望脚本,但是当我上传我的脚本时,我必须运行下一个命令:
dos2unix bash.sh - >将dos文件转换为Unix文件
chmod + x bash.sh - >给予执行权限
最后我运行我的脚本:
./ bash.sh
但之后它发送了那个错误。 这是非常奇怪的东西,因为我有另一个.sh文件具有相同的结构,我只是改变我获取文件的路径
我想我需要一些帮助。
感谢。
答案 0 :(得分:1)
我已经修好了,dos2unix命令出错了。我不得不在Ubuntu上再次编写它以避免运行dos2unix命令。