haitao
(HaitaoSoft)
1
经典的命令行工具如 curl,ffmpeg,openssl。。。它们功能强大,但参数太繁杂
不知道有没有人已经做了这样的工作?
最早接触linux时,就感觉:
如果有这样的界面外壳,linux也就不会这么难以被普通人接受了。。。。
这些工具功能强大,但命令行参数太多太难记忆了,如果做成GUI也会很恐怖,更别说纯粹在一行里敲字母,所以有个openssl的梗图(见最后的长图)
而参数或设置,其实不外乎 单选、多选、输入文本(文字信息或文件名或目录路径)
理论上是可以提供一个 通用的设置界面(比如叫 g2c.exe),它的具体功能由一个配置文件(命令行程序名.gset)决定,专家用户预先编好配置文件,普通用户想使用openssl,就用g2c.exe打开openssl.gset,g2c.exe就出现梗图的设置界面(当然,应该更有层次和条理一些,才方便不同熟练程度的用户),设置好了可以保存为openssl.xxx.set,下次可以直接打开来用或稍微修改就使用:生成相应的命令行参数去执行。。。。
之前做过这样的通用子模块,不是生成命令行,而是给程序直接获取用户的设置。
【上图对应的gset
可设置内容 label
普通文本(数值)
设置内容1 text ininame1 defaultvalue1
设置内容2a内容内容sdfasf12341234 text ininame2 defaultvalue2
单选
设置单选1 radio ininame3 0 3 item11 item12 item13
设置单选2 radio ininame4 4 5 item21 item22 item23 item24 item25
设置单选3 radio ininame5 1 2 item31 item32
多选1
布尔选项11 check ininame6 0 item6
布尔选项12 check ininame6 1 item7
布尔选项13 check ininame6 1 item8
多选2
布尔选项21 check ininame6 0 item6
布尔选项22 check ininame6 1 item7
布尔选项23 check ininame6 1 item8
】
1 个赞
真有人会去背ffmpeg那一堆参数吗。。。
而且ffmpeg传参顺序很重要(影响结果),这种壳看上去的传参顺序是定死的。
我是要的时候直接翻手册,或者像别人流行的写好几个固定脚本解决特定需求
1 个赞
haitao
(HaitaoSoft)
3
参数风格的兼容性是个问题。。。。
比如 ffmpeg还支持同样的参数重复出现,比如 -i a.mp4 -i b.mp4
顺序倒是一般无关,但个别情况的确是有关的,比较奇怪
这里又引申到另一个讨论:命令行参数的风格规则
个人觉得key=value(如url query、ini)规则最好,如: act=add pcount=3 p1=4 p2=1 p3=7
可惜unix开始都选择了: -act add -c 3 -p1 4 -p2 1 -p3 7 这样的规则
000
4
我是直接把常用的命令写在txt里保存,要用的时候稍微修改一下再复制到终端里。
1 个赞
GUI 可以代替一部分参数. 或者实现某些特定的功能.
如果要完全代替命令行, 就需要采取与命令行完全不同的交互方式.
比如 资源管理器代替传统的 Dir 文件显示方式和操作逻辑. 这种情况下, 其实已经与命令行无关了.
不过, 我是比较支持制作GUI的, 这对用户交互非常友好, 而且用户不需要关心实现过程和记忆各类命令和参数.
yazii
(Yazii!)
6
这个时候我就又要吹一下最简单易学,兼顾美观的能给命令行工具套壳的方案了。
那就是Python的gradio。如果命令行程序有Linux版本,你甚至可以用白嫖的服务器把它做成任意设备随时可以用的web App。
haitao
(HaitaoSoft)
8
dir与资源管理器不一样,后者需要 程序自己取得某些信息显示给用户看,再由用户在界面上选择,算是需要反复交互了。
dir、curl、ffmpeg都是一次参数输入就完成一次处理、输出。
另外,这个壳除了生成命令行参数,其实也可以生成一些服务的配置文件。
比如apache、nginx、各种数据库系统。。。。
这种配置文件很庞杂,手工编辑配置文本很容易改错一点导致无法启动服务!
不过,它肯定需要支持重复添加项目,像web网站和目录的设置都是可以任意多的。
lilyhcn1
(lilyhcn1)
11
还是太复杂了点,我的观点是直接把命令封装为API,这样不仅pc可以用,手机、平板、Linux都能用,甚至我喜欢的Excel也可以用。
我现在比如二维码生成,远程唤醒等,有兴趣也可以私聊我。
1 个赞
xmmdg
(笑眯眯的狗)
12
我进了一步,一般都是把 txt 改扩展名成 .bat (linux 里就改成 .sh),到时直接运行脚本就行了。
有趣的想法
我想到的是,解析 cli 工具 manual 里的内容输出 gui 的配置文件
根据 usage 里面的参数生成界面,kv 参数就是文本框,bool 参数就是单选/多选,同类参数形成一个 group
根据 examples 里面的参数生成常用配置,类似 profile 一样可以加载
感觉有人会写出类似工具
1 个赞
Niceb
(Niceb)
16
就你这样的方案跟直接用命令行有什么区别吗0.0 ,, 参数设置该不会的还是不会,懂参数怎么设置的应该会觉得命令行更好用
haitao
(HaitaoSoft)
19
搜了一下,gradio是做成web后台。。。。这好像也算一种思路,只是间接了一层
haitao
(HaitaoSoft)
20
直接根据manual或usage生成界面,倒是一个自动化的做法。
只是复杂的参数需要人为 分组分类(相关的才放一起)分层(高级的用法放后面,普通人不用都可以),才更合理、更方便使用,
否则就像 最开始那个openssl的gui,只是避免了记忆,帮助仍然不够大