我如何写入生成的终端?
how do I write to a spawned terminal?
对于这个小脚本:
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
以便用户输入回显到两个终端?
您 运行 期待 在 gnome 终端中,而不是相反。 Expect 实际上是一个命令行程序,而 gnome-terminal 实际上不是(它是一个图形终端模拟器)。特别是,gnome-terminal 完全忽略了它的 stdin 和 stdout;它有效地创建了供其他程序使用的那些。同时,Expect 通过与其他程序的标准输入和标准输出对话来控制其他程序(使用额外的虚拟终端进行欺骗);这意味着它用于其子进程的接口是 gnome-terminal 从外部基本上忽略的东西。
虽然在这种情况下,为什么不使用 Tk 弹出一个 GUI 来询问密码呢?您可以直接提问,而不是委托代理人提问。如果您愿意,这可以提供更丰富的界面……
对于这个小脚本:
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
以便用户输入回显到两个终端?
您 运行 期待 在 gnome 终端中,而不是相反。 Expect 实际上是一个命令行程序,而 gnome-terminal 实际上不是(它是一个图形终端模拟器)。特别是,gnome-terminal 完全忽略了它的 stdin 和 stdout;它有效地创建了供其他程序使用的那些。同时,Expect 通过与其他程序的标准输入和标准输出对话来控制其他程序(使用额外的虚拟终端进行欺骗);这意味着它用于其子进程的接口是 gnome-terminal 从外部基本上忽略的东西。
虽然在这种情况下,为什么不使用 Tk 弹出一个 GUI 来询问密码呢?您可以直接提问,而不是委托代理人提问。如果您愿意,这可以提供更丰富的界面……