Linux 如何向生成的终端写入?

Linux 如何向生成的终端写入?,linux,terminal,tcl,expect,tk,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终端,以便将用户输入回显到两个终端?您可以在gnome终端

对于这个小脚本:

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

您可以在gnome终端内部运行Expect,而不是相反。Expect实际上是一个命令行程序,而gnome终端实际上不是(它是一个图形终端模拟器)。特别是,gnome终端完全忽略其标准输入和标准输出;它有效地创建了供其他程序使用的程序。同时,Expect通过与其他程序的stdin和stdout对话(使用额外的虚拟终端进行欺骗)来控制其他程序;这意味着它用于其子进程的接口基本上是gnome终端从外部忽略的

虽然在这种情况下,为什么不使用Tk弹出一个GUI来请求密码呢?你可以直接提问,而不是委托他人提问。如果您希望…

在gnome终端内部运行Expect,而不是反过来运行Expect,那么这可以提供更丰富的界面。Expect实际上是一个命令行程序,而gnome终端实际上不是(它是一个图形终端模拟器)。特别是,gnome终端完全忽略其标准输入和标准输出;它有效地创建了供其他程序使用的程序。同时,Expect通过与其他程序的stdin和stdout对话(使用额外的虚拟终端进行欺骗)来控制其他程序;这意味着它用于其子进程的接口基本上是gnome终端从外部忽略的


虽然在这种情况下,为什么不使用Tk弹出一个GUI来请求密码呢?你可以直接提问,而不是委托他人提问。如果您希望…

您不能这样做,那么这可以使界面更加丰富。Expect可以控制一个命令行应用程序,而gnome终端是一个GUI。你不能。Expect可以控制一个命令行应用程序,而gnome终端是一个GUI。因为我的tcl仅限于上述内容。我可以手动打开两个终端并以某种方式在它们之间发送消息吗?用通讯软件包?如果不能做到,或者只能用TK合理地做到,那么这就是饼干的破碎方式。我只是想知道。因为我的tcl仅限于上述内容。我可以手动打开两个终端并以某种方式在它们之间发送消息吗?用通讯软件包?如果不能做到,或者只能用TK合理地做到,那么这就是饼干的破碎方式。我只是想知道。