我想编写一些脚本,这些脚本可以在一个窗口中打开多个终端窗格,就像tmux
或一样screen
。
我个人非常了解tmux
,并且已经使用了多年,但是我们团队中的其他开发人员不想了解任何有关它或其他屏幕多路复用器的信息。
为此,我想编写可以在一个窗口的多个窗格中进行自我划分的脚本。直线猛击有可能吗?
我的目标是
node
或需要安装某些东西(例如blessed-contrib),以使过程尽可能简单。ctrl+c
它会退出所有窗格,并返回到单个终端。我认为可以肯定地说,仅靠bash不能完全做到这一点。您将需要诸如perl / python之类的高级编程语言,或者使用脚本来控制tmux的实例。
这是所涉及技术的快速回顾:
有一些工具可以让bash调用ioctl,但我认为它不能处理pty分配所需的所有调用,而且它也不是标准工具。
您也许可以通过手动创建pty设备节点来解决该问题,但是您需要以root身份运行,这很麻烦。
bash可以从tput
命令中找出各种终端转义序列,实际上,您可以编写呈现文本窗口的bash脚本,但是如果没有ncurses,这将很难正确地实现并且跨平台,这将花费您大量的时间。
简而言之,我认为您不能使用普通的bash和posix工具来实现这一目标。
Perl几乎安装在所有unix上,并且perl可以进行ioctl
调用,因此,是的,即使没有安装任何额外的模块,也应该可以在perl中编写它。但是,我再次期望如果不至少使用一些额外的帮助程序模块(如IO :: Pty和Curses),将会花费太长时间。但是即使有这些,仍然有很多工作要做。
我认为您最好的选择是尝试编写tmux脚本。我以前没有做过,但是那篇文章给出了几天项目的外观,而不是几个星期几吨的学习项目。
如果主要反对是必须安装tmux,则可以尝试下载并编译tmux的静态二进制文件,然后将其与脚本一起分发。静态二进制避免了对系统中任何库的依赖,并且应该在正确架构的任何现代Linux内核上运行。您甚至可以编译多种体系结构的二进制文件,然后让脚本检测要使用的二进制文件。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句