我曾经像这样使用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/