Linux 期望生成id未打开

Linux 期望生成id未打开,linux,shell,unix,redhat,expect,Linux,Shell,Unix,Redhat,Expect,在一个简短的说明中,我使用了一个工具,它可以启动在shell中编写的备份脚本,然后使用EXPECT连接到远程服务器并执行shell脚本 对于长时间运行的expect作业,或者当使用不同的参数值启动多个作业时,我得到以下错误 expect: spawn id exp6 not open while executing "expect "*>" { send "exit\r" }" (file "/oraadmin/ettool/upgradescripts/expct_or

在一个简短的说明中,我使用了一个工具,它可以启动在shell中编写的备份脚本,然后使用EXPECT连接到远程服务器并执行shell脚本

对于长时间运行的expect作业,或者当使用不同的参数值启动多个作业时,我得到以下错误

expect: spawn id exp6 not open
    while executing
"expect "*>" { send  "exit\r" }"
    (file "/oraadmin/ettool/upgradescripts/expct_orig_scripts/expdp_expct.sh" line 25)
虽然脚本来自我执行的机器,但它仍然在远程服务器上运行

代码如下:

set SoDb [lrange $argv 4 4]
set SoCl [lrange $argv 5 5]
set x  [lrange $argv 6 6]
set THEDATE [lrange $argv 7 7 ]
set timeout -1
#echo $scn_source
spawn ssh -q [lindex $argv 1]@[lindex $argv 0]
log_user 0
expect "yes/no" {
        send "yes\r"
        expect -re "(.*)assword:"  { sleep 5; send "[lindex $argv 2]\r" }
        } -re "(.*)assword:"  { sleep 5; send "[lindex $argv 2]\r" }
expect "*>" { send "sudo su - [lindex $argv 3]\r" }
sleep 5
expect -re "(.*)assword:" {
         sleep 5;send "[lindex $argv 2]\r"
        expect "*]" { send " /orashare/ettool/expdp.sh ${SoDb} ${SoCl} $x $THEDATE\r" }
        } "*]" {  send " /orashare/ettool/expdp.sh ${SoDb} ${SoCl} $x $THEDATE\r" }
log_user 1
expect "*]" { send  "exit\r" }
expect "*>" { send  "exit\r" }
expect eof

我在任何堆栈溢出线程中都找不到确切的情况,请提供帮助。

log\u user 1
之前添加
exp\u internal 1
。这将为您提供调试输出提示。我已经调试过了。错误的调试输出为:expect:read-eof-expect:set-expect\u-out(spawn\u-id)“exp6”exp6“expect:set-expect\u-out(buffer)”expect:spawn-id exp6未打开