我的问题是如何在某些文件更改时运行Bash命令?
例如,如果我正在编写C程序,并且每次保存文件时都会自动运行命令rm output; gcc program.c -o output; ./output
答案 0 :(得分:2)
您可以使用make
和watch
:
生成文件:
output: program.c
gcc program.c -o output
./output
然后
$ watch make
在另一个终端。
但是,在保存program.c和运行它之间会有一点延迟。
答案 1 :(得分:1)
您可以将inotifywait用于此特定目的。
while true; do
change=$(inotifywait -e close_write,moved_to,create .)
change=${change#./ * }
if [ "$change" = "program.c" ]; then rm output; gcc program.c -o output; ./output; fi
done