2014-07-25 72 views
1

我試圖運行expect腳本,但我有一個錯誤:Expect腳本錯誤發送:產卵ID EXP4不開,而執行「發送‘密碼’」

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 [email protected] 
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

看起來像sftp命令是在你到達密碼之前終止。在spawn命令之前添加'exp_internal 1',看看調試輸出是否給你提供任何線索。 –

+0

格倫,我已經把你的你告訴我,結果是: 父:等同步字節 父:告訴孩子先走 父:現在從兒童 產卵不同步:返回{12374} 期待:做「」(spawn_id exp4)匹配全局模式「sftp.gatewayEnter鍵'/home2/localUser/MyPrivKeys_open.ppk'的密碼短語:」?沒有 預計有:閱讀EOF 期待:設置expect_out(spawn_id在) 「EXP4」 期待:設置expect_out(緩衝) 「」 發送:發送 「密碼\ r」 把{EXP4發送:產卵ID EXP4無法打開 在執行 「發送」密碼\ r「」 (文件「./bash.sh」line 13) 您對此有何看法? 謝謝你! – Flxtr

+0

我在那裏看到「read eof」,表示sftp已關閉。我不知道爲什麼。 –

回答

0

我已經修復它,它是dos2unix命令中的錯誤。爲了避免運行dos2unix命令,我必須通過Ubuntu再次對其進行編碼。

相關問題