I have a bash script where I want to trigger a method every time the filesystem is changed:
#!/bin/bash
function run {
echo Do some magic
// Do some magic
}
run
fswatch . src | 'run'
In this case I am watching the src folder.
When I trigger the script via
./automater.sh
the script executes the run function the first time correctly and when I then change some file, the script simply exits...
BUT then it runs in a loop...., I also hit this, because after your./automater.shexecution, there are some new file changes in your directory, you can use exclude option to ignore these files, in my case like:fswatch -l 5 -o -e ".*" -i "\\.py$" . | while read; \ do \ unittest || true done|| true, seems need to make your command return true when your use in shell script, I use this trick to solveonly first time correctlyissueAlso you can run
fswatch . srcand your 'run' command in separate terminal window to find what are the newly changes are.