Bash脚本 - fswatch触发bash功能

时间:2017-09-01 11:32:13

标签: bash shell triggers filesystems fswatch

我有一个bash脚本,我想在每次更改文件系统时触发一个方法:

#!/bin/bash

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

run

fswatch . src | 'run'

在这种情况下,我正在观看src文件夹。

当我通过

触发脚本时
./automater.sh

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

1 个答案:

答案 0 :(得分:1)

BUT then it runs in a loop....,我也点击了这个,因为在./automater.sh执行后,你的目录中有一些新的文件更改,你可以使用exclude选项来忽略这些文件,在我的情况下如下: / p>

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

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

此外,您可以运行fswatch . src并运行'运行'命令在单独的终端窗口中查找新更改的内容。