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文件具有相同的結構,我只是改變路徑,我得到的文件
我想我需要一些關於它的幫助。
謝謝。
看起來像sftp命令是在你到達密碼之前終止。在spawn命令之前添加'exp_internal 1',看看調試輸出是否給你提供任何線索。 –
格倫,我已經把你的你告訴我,結果是: 父:等同步字節 父:告訴孩子先走 父:現在從兒童 產卵不同步:返回{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
我在那裏看到「read eof」,表示sftp已關閉。我不知道爲什麼。 –