Shell脚本中的一组库,例如ncurses

波斯湾

假设您TUI在外壳中显示以下内容

在此处输入图片说明

我需要一组可以在Shell中使用的库来完成此操作。可以肯定的是,ncurses它没有被使用,因为它具有依赖性。

问题:如何TUI在外壳中构建窗口小部件/窗口或其他窗口

光环幽灵

好的,我觉得您可能是在问两个问题之一,所以我会尽力回答这两个问题。

  1. 一个人可以使用哪些库来创建ncurses(如Shell脚本的接口)?

    实际上,无论如何我绝对不会直接将ncurses推荐给shell脚本,因为它实际上并不打算由shell语言使用。相反,我会推荐dialogDialog是一个垫片库,位于ncurses和shell之间,使它的使用更加简单。

    从功能上来说,这会给您两个依赖关系(一个依赖ncurses和一个依赖dialog),您似乎出于某种原因而反对。

  2. 鉴于我不需要任何外部依赖关系,如何创建自己的类似ncurses的TUI库?

    这是方式* nix.SE的范围之内。创建一个新的TUI库并不是一件容易的事(特别是如果您试图在纯Shell中创建它的话)。有很多项目试图制作新的库来代替ncurses的某些用法(例如,它termbox是较为成功的方法之一)。

    如果打算创建自己的库,则可能需要查看较低级的项目(例如ncurses和termbox)以及较高级的项目(例如,对话框)。查看他们的工作可能会给您一个入门的思路。


最终建议:

尽管需要一些额外的工作(用于集成和支持),但对外部项目的依赖并不是一件坏事。这意味着您只能专注于要制作的工具,而将基础工作留给基础设施较低的人员。Linux,特别是在* nix平台之外,具有悠久的依赖关系交互历史。

如果您的目标是学习如何完成较低级别的工作,那么不妨这样做。相反,如果您尝试制作一种可以从如此低水平的工作中受益的工具,则只需依赖外部工具即可。您会更快乐,因此每个查看您代码的人都将变得更加幸福。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Crontab在一组脚本中不适用于一个Shell脚本

只有一组 shell 脚本才能执行一个 shell 脚本

从数据库表中获取一组集群/一组值-Oracle SQL

标识数据库中的一组条目

在 Oracle 中更新一组行的字段库

是否有正则表达式将一组字符替换为另一组字符(例如shell tr命令)?

如何删除熊猫中属于同一组的某些k个条目,例如余额类?

不在一组开头和结尾字符中的匹配模式,例如{},()

如何创建一个Shell脚本来启动3个终端并在每个终端中执行一组命令?

Shell脚本将一组文件夹移动到一个文件夹中并为其加上时间戳

使用主脚本中的参数循环执行一组Python脚本

如何在脚本中的tmux或gnome-terminal内部启动一组程序?

SQL:如何在数据库中搜索列名(在一组表中)

如何使Shell脚本对一组日志文件进行grep计数,以计算在日期内与关键字匹配的行数?

如何通过给定特定模式名称的shell脚本生成一组新的不同文件?

在Unity3d中,如何将浮动窗口(例如,灯光映射)添加到现有的一组选项卡(例如:Inspector)中?

在phpmyadmin数据库中返回满足一组特定条件的用户

PHP:在数据库中查找一组总和为特定数字的数字

PHP-使用一组ID从数据库中删除许多项目

如何过滤存储在数据库中的一组特定用户?

SQL Server从数据库中获取一组10个元素

phpmyadmin数据库中2列的唯一组合

从数据库中的一组数组元素中生成随机数

是否可以在Azure DevOps中创建一组存储库?

快速检查数据库中是否存在一组项目

在C ++中添加一组数字

计算一组中的点数 - Highcharts

排序在Java中的一组

同一组中的文件权限