首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Bash脚本- fswatch触发器bash函数

Bash脚本- fswatch触发器bash函数
EN

Stack Overflow用户
提问于 2017-09-01 11:32:13
回答 1查看 1.6K关注 0票数 1

我有一个bash脚本,在该脚本中,每当文件系统被更改时,我都要触发一个方法:

代码语言:javascript
运行
复制
#!/bin/bash

function run {
    echo Do some magic
    // Do some magic
}

run

fswatch . src | 'run'

在本例中,我正在查看src文件夹。

当我触发脚本时

代码语言:javascript
运行
复制
./automater.sh

脚本在第一次正确执行run函数时,当我更改某个文件时,脚本就会退出.

EN

回答 1

Stack Overflow用户

发布于 2017-09-20 03:24:49

BUT then it runs in a loop....,我也是这样做的,因为在您的./automater.sh执行之后,您的目录中有一些新的文件更改,您可以使用排除选项忽略这些文件,在我的例子中如下:

fswatch -l 5 -o -e ".*" -i "\\.py$" . | while read; \ do \ unittest || true done

  • -l,每5秒检查一次文件更改
  • -o,将所有更改批次到一个数字
  • -e,排除文件,".*“是指首先排除所有文件。
  • -i,包含文件,".py$“是指包含所有.py文件
  • || true,在使用shell脚本时,似乎需要使命令返回为真,我使用这个技巧来解决only first time correctly问题。

此外,您还可以在单独的终端窗口中运行fswatch . src和“run”命令,以查找新的更改是什么。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45999364

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档