(TCL/توقع) شاشة مسح بعد الخروج
-
22-09-2019 - |
سؤال
أرغب في مسح الشاشة (على الجهاز المحلي) بعد الخروج من البرنامج النصي التفاعلي (شبه) المتوقع. هل يمكنني فعل ذلك من داخل البرنامج النصي؟ هذا ما جربته ، فشل ذلك.
#!/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. يمكنني الخروج إلى القشرة ثم القيام "واضح" على المضيف البعيد إذا كان هذا هو الضروري ، لكنني أعتقد أن موجه المضيف عن بُعد سيظل على الشاشة.
تحرير: تم تغييره لمحاولة واضحة قبل "الخروج" (يتم تنفيذ "Quision Question:" exec clear "على الجهاز الذي يدير البرنامج النصي المتوقع بشكل صحيح؟)
المحلول
بمجرد [الخروج] ، لن يتم تنفيذ كل شيء آخر بعد. يجب عليك [EXEC CLEAR] قبل الخروج.
إذا كنت تستخدم محطة متوافقة مع VT100 (ومعظم أطراف UNIX) ، فيمكنك محاولة إرسال أوامر VT100 مباشرة إلى المحطة:
puts \033\[2J
لا تنتمي إلى StackOverflow