你是否曾希望将 shell 脚本紧凑地融入到真正的编程语言里面? 那么可以了解下 Plumbum Shell 组合器。
-- Tomer Filiba
致谢
编译自 | https://plumbum.readthedocs.io/en/latest/
作者 | Tomer Filiba
译者 | qhh0205 共计翻译:1篇 贡献时间:24 天
Plumbum:Shell 组合器
你是否曾希望将 shell 脚本紧凑地融入到真正的编程语言里面? 那么可以了解下 Plumbum Shell 组合器。Plumbum (lead 的拉丁语,以前用来制作管道)是一个小型但功能丰富的类库,用于以 Python 进行类似 shell 脚本编程。该库的理念是 “永远不要再写 shell 脚本”,因此它试图合理地模仿 shell 语法(shell 组合器),同时保持Python 特性和跨平台。
除了类似 shell 的语法
[1]
和便捷的快捷方式
[2]
之外,该库还提供本地和远程
[3]
命令执行(通过 SSH)、本地和远程文件系统路径
[4]
、简单的工作目录和环境操作
[5]
、快捷访问 ANSI 颜色,以及编程命令行接口(CLI)
[6]
应用程序工具包。现在让我们看一些代码!
其最新版本 1.6.6 发布于 2018 年 2 月 12 日。
快捷使用指南
基本使用
不需要为每个你想使用的命令写 ,你可以导入命令行
[7]
:
参见本地命令行
[1]
。
管道
参见管道
[8]
。
重定向
参见输入/输出重定向
[9]
。
工作目录操作
参见路径
[4]
和本地对象
[5]
。
前台后和后台执行
参见前台和后台
[10]
。
命令行嵌套
参见命令行嵌套
[11]
。
远程命令(通过 SSH)
参见远程
[12]
。
CLI 应用程序
输出样例:
参见命令行应用程序
[6]
。
颜色和风格
输出样例:
参见颜色
[13]
。
开发和安装
该库在Github
[14]
上开发,非常乐意接受来自用户的补丁
[15]
。请使用 GitHub 的内置issue 跟踪器
[16]
报告您遇到的任何问题或提出功能上的需求。该库在IMIT 许可
[17]
下发布。
要求
Plumbum 支持 Python 2.6-3.6 和 PyPy,并且通过Travis CI
[18]
和Appveyor
[19]
持续地在 Linux,Mac 和 Windows 机器上测试。Plumbum 在任何类 Unix 的机器都应该可以正常工作,但是在 Windows 上,你也许需要安装一个合适的coreutils
[20]
环境并把其加入到你的环境变量中。我推荐mingw
[21]
(与Windows Git
[22]
捆绑在一起),但是cygwin
[23]
应该也可以。如果你仅仅是使用 Plumbum 代替 Popen 来运行 Windows 程序,那么就不需要 Unix 工具了。 注意远程命令的执行,你需要一个 openSHH 兼容的客户端(同样与 Windows Git 捆绑在一起)和一个 bash 兼容的 shell,也需要在主机上有一个 coreutils 环境。
下载
你可以在Python Package Index
[24]
(多种格式)下载该库,或者直接运行 。如果你使用 Anaconda,你可以使用 从 通道获取。
用户指南
用户指南涵盖了 Plumbum 大部分功能,拥有大量的代码片段,你可以不用花多少时间即可开始使用。该指南逐渐介绍概念和"语法",因此推荐你按照顺序阅读。一个有效的快速参考指南
[25]
。略。。。
关于
Plumburn 最初的目的是让本地和远程程序轻松地执行,假设没有比老的 ssh 更时髦的东西了。在此基础上,设计了一个文件系统抽象层,以便能够无缝地处理本地和远程文件。 我有这个想法一段时间了,直到我必须要个给我当前工作的项目写一个构建脚本,我决定使用 shell 脚本,现在是实现它的时候了。Plumbum 诞生自 类的片段和我为RPyC
[26]
写的 和 类。 类是我为前面说的构建系统写的。当我将两者与shell 组合器(因为 shell 脚本在这里确实有优势)组合在一起时,奇迹就发生了,便产生了Plumbun。
致谢
该项目受到了Andrew Moffat的PBS(现在被称作sh
[28]
)启发,并且借用了他的一些思想(即像函数一样看待程序,导入命令行的技巧)。然而我感觉在 PBS 中有太多的神秘的东西,当我编写类 shell 程序时,语法不是我想要的。关于这个问题我联系了 Andrew,但是他想让 PBS 保持这种状态。除此之外,两个库走不同的方向,Plumbum 试图提供一种更合理的方法。
Plumbum 也向Rotem Yaari
[29]
致敬,他为特定的目的建议了一个代号为 的库,但是尚未实现过。
领取专属 10元无门槛券
私享最新 技术干货