(Tcl / Expect) schermo chiaro dopo l'uscita
-
22-09-2019 - |
Domanda
Voglio cancellare lo schermo (sulla macchina locale) dopo l'uscita dal mio (semi) script interattivo aspettare. Posso farlo all'interno dello script? Ecco quello che ho provato, che non è riuscita.
#!/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
}
~~
}
Sul lato remoto non sono in un guscio, ma in un programma ERP. Potrei uscire alla shell poi fare un "chiaro" sulla macchina remota, se questo è ciò che è necessario, ma penso che il prompt di host remoto sarebbe ancora sullo schermo.
EDIT: cambiato per cercare chiaro prima "uscita" (sub-domanda: "exec chiaro" viene eseguito sulla macchina che esegue lo script aspetta a destra)
Soluzione
Una volta che [l'uscita], tutto il resto dopo non è sta per essere eseguito. Si dovrebbe [exec chiaro] prima di uscire.
Se si utilizza un terminale compatibile VT100 (e la maggior parte dei terminali Unix sono) allora si può provare direttamente l'invio di comandi VT100 al terminale:
puts \033\[2J