linux - 我如何写入生成的终端?

标签 linux terminal tcl expect tk-toolkit

对于这个小脚本:

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/

相关文章:

python - 从 python 路径中删除项目

linux - 如何根据时间戳在 linux 中对 csv 文件进行排序?

macos - 在终端中永久设置默认编辑器

ios - 安装cocoa pods,xcode应用项目目录根目录在哪里?

c - 从数组中省略 'N' 组元素

centos - "yum install tcltls"在 centOS 上给出错误 "No package tcltls available"

python - 按时钟并行输出视频

c - 如何搜索当前目录中的文件和当前目录下目录中的文件?

python - 缺少 DBus .service 文件

arrays - 重命名全局数组 TCL