用TCL驱动linux shell

mpr*_*hme 2 linux shell tcl

我是TCL语言的新手,我想使用我编写的脚本来自动执行一些我通常在Linux终端界面(或其他shell)中执行的简单任务.我现在的目标是能够简单地启动一个终端(我正在使用ubuntu这样的gnome-terminal命令),然后能够向该终端实例发送命令.

我最初的想法是,我可以简单地做这样的事情:

set  myTerminal [open |gnome-terminal r+]
puts  $myTerminal "a command"
flush $myTerminal  
Run Code Online (Sandbox Code Playgroud)

并且这会将字符刷新到终端.没有任何事情发生,我不知道如何继续.非常感谢您的帮助!

编辑:我特别想使用终端来运行具有命令行界面的程序.我的想法是我可以使用tcl启动一个终端,然后给终端命令运行该程序,最后使用终端作为tcl脚本和命令行程序之间的中介.为了推测,我使用tcl来驱动终端,这反过来驱动命令行程序.

Byr*_*ock 7

你应该使用expect.这是标准.如果你手工操作,它会隐藏大部分的外壳怪癖.

它是用TCL编写的,并且可以完全按照您的要求进行操作.

Expect是一个Unix自动化和测试工具,由Don Libes编写,作为Tcl脚本语言的扩展,用于交互式应用程序,如telnet,f​​tp,passwd,fsck,rlogin,tip,ssh等.它使用Unix伪终端透明地包装子进程,允许通过终端访问的任意应用程序的自动化.