期待脚本错误发送:spawn id exp4在执行时未打开"发送"密码""

时间:2014-07-25 20:22:49

标签: linux bash shell unix expect

我试图运行期望脚本但是我有一个错误:

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文件具有相同的结构,我只是改变我获取文件的路径

我想我需要一些帮助。

感谢。

1 个答案:

答案 0 :(得分:1)

我已经修好了,dos2unix命令出错了。我不得不在Ubuntu上再次编写它以避免运行dos2unix命令。