Dom*_*kis 27
我使用此脚本在目录树中的更改上运行构建脚本:
#!/bin/bash -eu
DIRECTORY_TO_OBSERVE="js" # might want to change this
function block_for_change {
inotifywait --recursive \
--event modify,move,create,delete \
$DIRECTORY_TO_OBSERVE
}
BUILD_SCRIPT=build.sh # might want to change this too
function build {
bash $BUILD_SCRIPT
}
build
while block_for_change; do
build
done
Run Code Online (Sandbox Code Playgroud)
用途inotify-tools.检查inotifywait 手册页,了解如何自定义触发构建的内容.
Fré*_*idi 21
ken*_*orb 21
您可以尝试使用entr工具在文件更改时运行任意命令.文件示例:
$ ls -d * | entr sh -c 'make && make test'
Run Code Online (Sandbox Code Playgroud)
要么:
$ ls *.css *.html | entr reload-browser Firefox
Run Code Online (Sandbox Code Playgroud)
对于目录使用Changed!,但您必须在循环中使用它,例如:
$ echo file.txt | entr echo Changed!
Run Code Online (Sandbox Code Playgroud)
要么:
while true; do find path/ | entr -d echo Changed; done
Run Code Online (Sandbox Code Playgroud)
这个剧本怎么样?使用“stat”命令获取文件的访问时间,并在访问时间发生变化时(每当访问文件时)运行命令。
#!/bin/bash
while true
do
ATIME=`stat -c %Z /path/to/the/file.txt`
if [[ "$ATIME" != "$LTIME" ]]
then
echo "RUN COMMNAD"
LTIME=$ATIME
fi
sleep 5
done
Run Code Online (Sandbox Code Playgroud)