如何写一个衍生的终端?

时间:2016-04-11 15:59:54

标签: linux terminal tcl expect tk

对于这个小脚本:

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以便用户输入回显到两个终端?

1 个答案:

答案 0 :(得分:2)

你在 gnome-terminal中运行Expect ,而不是相反。 Expect是一个真正的命令行程序,而gnome-terminal实际上并不是(它是一个图形终端模拟器)。特别是,gnome-terminal完全忽略了它的stdin和stdout;它有效地创建了其他程序使用的那些。同时,Expect通过与他们的stdin和stdout交谈来控制其他程序(带有额外虚拟终端的技巧);这意味着它用于子进程的接口是gnome-terminal从外部基本上忽略的东西。

虽然在这种情况下,为什么不使用Tk弹出GUI来询问密码呢?您可以直接询问,而不是提出代理来提问。如果您愿意,这可以使界面更加丰富......