Bash:在文件保存上执行脚本?

Tho*_*mas 5 bash shell automation unit-testing

当我保存给定目录中的任何文件时,我想使用Bash自动运行测试套件.

是否存在bash在保存事件上执行给定脚本的机制?

谢谢.

::编辑::

我应该提到我正在使用OSX.

rbp*_*rbp 5

编辑:你(OP)提到你使用OSX.我不知道OSX上有任何类似的工具.有一个名为" kqueue " 的低级系统调用(继承自BSD),但您必须实现自己的用户级工具.Apple提供了一个名为" Watcher " 的示例应用程序,但它只是概念证明,并不能满足您的需求.

Stack Overflow 还有另一个关于此问题的帖子(也没有定论).

由于缺少合适的工具,如果您使用的是特定的编程语言,我建议您寻找已经为其编写的解决方案.否则,我认为你自己坚持轮询和管理变更......

这是我原来的基于Linux的答案,用于存档目的:

如果您使用的是Linux,则可能需要查看inotify.更具体地说,您可以安装inotify-tools,其中包括inotifywait.

有了它,您可以监视文件和目录中的许多事件,例如访问,修改,打开,关闭等等.inotifywait一旦检测到指定的事件就可以退出,所以一个简单的循环可以得到你想要的东西:

while :; do
    inotifywait -e modify /some/directory
    run_test_suite
done
Run Code Online (Sandbox Code Playgroud)

顺便说一句,许多编程语言和环境已经有了自己的连续测试运行器(例如,使用Python,你可以使用tdaemon等).