我曾经像这样使用fswatch v0.0.2(在本例中,在文件更改时运行django测试套件)
$>fswatch . 'python manage.py test'
这很管用。
我想排除一些导致每次保存测试运行不止一次的文件(Sublime text正在保存一个.tmp文件,我怀疑.pyc文件也导致了这个问题)
所以我升级了fswatch以启用-e模式。
然而,fswatch的方式发生了变化,这给我带来了麻烦-它现在接受这样的管道参数:
$>fswatch . | xargs -n1 program
我不知道怎么把参数传给程序。例如,这不起作用:
$>fswatch . | xargs -n1 python manage.py test
这也不是:
$>fswatch . | xargs -n1 'python manage.py test'
如果不将命令打包到bash脚本中,我如何才能做到这一点?

最佳答案

fswatch文档(要么Texinfo manual,要么wiki,要么README)有这样做的示例:

$ fswatch [opts] -0 path ... | xargs -0 -n1 -I{} your full command goes here

陷阱:
-0:使用它确保具有换行符的路径被正确解释。
-o:使用它将集合中的所有事件合并为一个事件,只打印集合中的记录数。
fswatch:在不希望记录(在本例中,由于使用了-I{},因此是集合中的记录数)传递给正在执行的命令的情况下,指定占位符是正确解释命令参数所错过的技巧。

关于macos - 如何运行fswatch调用带有静态参数的程序?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25689589/

10-13 08:45