在文件更改上运行Bash命令?

时间:2014-07-18 03:48:24

标签: macos bash unix

我的问题是如何在某些文件更改时运行Bash命令?

例如,如果我正在编写C程序,并且每次保存文件时都会自动运行命令rm output; gcc program.c -o output; ./output

2 个答案:

答案 0 :(得分:2)

您可以使用makewatch

生成文件:

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
相关问题