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