我想编写一个看起来像这样的 Zsh 函数:
smartwatch [WATCH_FILE] [COMMAND_TO_RUN] [COMMAND_ARGS]
这样WATCH_FILE
保存后,COMMAND_TO_RUN
将运行并smartwatch
等待文件再次保存。在这种情况下,这对我很有帮助:
smartwatch server.py python server.py
所以每次我修改服务器文件时,服务器都会重新启动。我听说inotify-tools可能会有所帮助,所以我正在使用inotifywait
,但如果有人知道更好的工具,请告诉我。这是我到目前为止所拥有的:
smartwatch() {
WATCH=$1
CMD=$2
ARGS=$*[3,-1]
$CMD $ARGS &!
PID=$!
inotifywait -qq $WATCH
kill $PID
exec smartwatch $WATCH $CMD $ARGS
}
这个解决方案相当慢而且不是很优雅。任何人都知道一种方法可以提高效率或至少更清洁?