对于这个小脚本:
package require Tcl 8.4
package require Expect 5.40
spawn gnome-terminal
while {1} {
puts -nonewline "Enter your name: "
flush stdout
set name [gets stdin]
puts "Hello $name"
}
如何写入生成的gnome-terminal
以便用户输入回显到两个终端?
答案 0 :(得分:2)
你在 gnome-terminal中运行Expect ,而不是相反。 Expect是一个真正的命令行程序,而gnome-terminal实际上并不是(它是一个图形终端模拟器)。特别是,gnome-terminal完全忽略了它的stdin和stdout;它有效地创建了其他程序使用的那些。同时,Expect通过与他们的stdin和stdout交谈来控制其他程序(带有额外虚拟终端的技巧);这意味着它用于子进程的接口是gnome-terminal从外部基本上忽略的东西。
虽然在这种情况下,为什么不使用Tk弹出GUI来询问密码呢?您可以直接询问,而不是提出代理来提问。如果您愿意,这可以使界面更加丰富......