我想从我的(半)退出expect脚本互动后清除屏幕(在本地计算机上)。我能做到这一点从脚本内?这是我尝试过,失败。

#!/usr/bin/expect -f
set env(TERM) vt100
spawn ssh -Y username@domain
set user username
set pass password 
#login sequence
expect "password: "
send "${pass}\r"
sleep .5  
#some menu commands to enter ERP....
#...
#...
set CTRLZ \032
set CTRLC \003
set CTRLA \001
#don't time out
set timeout -1 
        interact {
                -reset $CTRLZ {exec kill -STOP [pid]}
                $CTRLA   {   
                        exp_send "menucmd...\ry\r"
                }   
                $CTRLC   {  

                        #clear the host machine screen???
                        exec clear
                        exit
                }
                ~~  
        } 

在远程侧我不是在一个外壳,但在一个ERP程序。我可以退出的壳,然后在远程主机上做了一个“明确的”如果这就是必要的,但我想在远程主机提示仍然会在屏幕上。

编辑:改为尝试“退出”之前明确(子问题:“EXEC清除”运行脚本期待权的机器上执行)

有帮助吗?

解决方案

一旦[退出],一切之后是不会被执行。你应该[EXEC清除]在退出之前。

如果您使用的VT100兼容终端(和大多数Unix端子是),则可以尝试直接发送VT100命令到终端:

puts \033\[2J
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top