假设您TUI
在外壳中显示以下内容:
我需要一组可以在Shell中使用的库来完成此操作。可以肯定的是,ncurses
它没有被使用,因为它具有依赖性。
问题:如何TUI
在外壳中构建窗口小部件/窗口或其他窗口?
好的,我觉得您可能是在问两个问题之一,所以我会尽力回答这两个问题。
一个人可以使用哪些库来创建ncurses(如Shell脚本的接口)?
实际上,无论如何我绝对不会直接将ncurses推荐给shell脚本,因为它实际上并不打算由shell语言使用。相反,我会推荐dialog
。Dialog是一个垫片库,位于ncurses和shell之间,使它的使用更加简单。
从功能上来说,这会给您两个依赖关系(一个依赖ncurses
和一个依赖dialog
),您似乎出于某种原因而反对。
鉴于我不需要任何外部依赖关系,如何创建自己的类似ncurses的TUI库?
这是方式* nix.SE的范围之内。创建一个新的TUI库并不是一件容易的事(特别是如果您试图在纯Shell中创建它的话)。有很多项目试图制作新的库来代替ncurses的某些用法(例如,它termbox
是较为成功的方法之一)。
如果打算创建自己的库,则可能需要查看较低级的项目(例如ncurses和termbox)以及较高级的项目(例如,对话框)。查看他们的工作可能会给您一个入门的思路。
最终建议:
尽管需要一些额外的工作(用于集成和支持),但对外部项目的依赖并不是一件坏事。这意味着您只能专注于要制作的工具,而将基础工作留给基础设施较低的人员。Linux,特别是在* nix平台之外,具有悠久的依赖关系交互历史。
如果您的目标是学习如何完成较低级别的工作,那么不妨这样做。相反,如果您尝试制作一种可以从如此低水平的工作中受益的工具,则只需依赖外部工具即可。您会更快乐,因此每个查看您代码的人都将变得更加幸福。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句