entr:文件更改时重新运行构建

这是一篇简短的文章。我是最近才发现 entr 的,我很惊奇从来没有人告诉过我?!因此,如果你和我一样,那么我告诉你它是什么。

创新互联建站是专业的富平网站建设公司,富平接单;提供成都做网站、网站设计,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行富平网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

entr 的网站上对它已经有很好的解释,也有很多示例。

总结在其头部:entr 是一个命令行工具,当每次更改一组指定文件中的任何一个时,都能运行一个任意命令。你在标准输入给它传递要监控的文件列表,如下所示:

或者

或者任何你希望的。

就像世界上的每个程序员一样,我发现每次更改代码时都必须手动重新运行构建/测试非常烦人。

许多工具(例如 hugo 和 flask)都有一个内置的系统,可以在更改文件时自动重建,这很棒!

但是通常我会自己编写一些自定义的构建过程(例如 bash build.sh),而 entr 让我有了一种神奇的构建经验,我只用一行 bash 就能得到即时反馈,知道我的改变是否修复了那个奇怪的 bug。万岁!

但是如果你正在运行服务器,并且每次都需要重新启动服务器怎么办?如果你传递 -r,那么 entr 会帮你的

另一个简洁的标志是 -c,它让你可以在重新运行命令之前清除屏幕,以免被前面构建的输出分散注意力。

通常,我要跟 踪的文件集和我在 git 中的文件列表大致相同,因此将 git ls-files 传递给 entr 是很自然的事情。

我现在有一个项目,有时候我刚创建的文件还没有在 git 里。那么如果你想包含未被跟 踪的文件怎么办呢?这些 git 命令行参数就可以做到(我是从一个读者的邮件中得到的,谢谢你!):

有人给我发了邮件,说他们做了一个 git-entr 命令,可以执行:

我觉得这真是一个很棒的主意。

git ls-files 的另一个问题是有时候我添加一个新文件,当然它还没有在 git 中。entr 为此提供了一个很好的功能。如果你传递 -d,那么如果你在 entr 跟 踪的任何目录中添加新文件,它就会退出。

我将它与一个 while 循环配合使用,它将重启 entr 来包括新文件,如下所示:

在 Linux 中,entr 使用 inotify(用于跟 踪文件更改这样的文件系统事件的系统)工作。如果用 strace 跟 踪它,那么你会看到每个监控文件的 inotify_add_watch 系统调用,如下所示:

我希望这可以帮助一些人了解 entr!

【编辑推荐】

程序员喜大普奔 Linux基金会确认开源技术不受美国出口管制 Linux停用“黑名单”,因为这是敏感词,涉嫌种族歧视 Linux 上无痛文件提取 Linux下列出目录内容命令 安装Linux Mint 20后需要做的13件事
【责任编辑:庞桂玉 TEL:(010)68476606】

标题名称:entr:文件更改时重新运行构建
网站地址:https://www.cdcxhl.com/article22/sogsjc.html

成都网站建设公司_创新互联,为您提供网页设计公司网站收录静态网站网站内链网站维护标签优化

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

搜索引擎优化