编写Bash脚本:打开Vim编辑时监控文件修改并触发操作
解决方法
原脚本是顺序执行逻辑,必须等Vim退出后才会启动文件监控,要实现编辑时同步监控,只需将监控进程放到后台运行,编辑完成后再清理后台进程:
修改后的完整脚本:
#!/usr/bin/env bash # 启动inotifywait监控并放入后台 inotifywait --quiet --monitor --event modify chart.csv | while read; do notify-send "文件已保存:chart.csv" done & # 记录后台监控进程的PID MONITOR_PID=$! # 启动Vim编辑目标文件 vim chart.csv # Vim退出后,终止后台监控进程 kill $MONITOR_PID
几点优化说明
- 用
&将监控管道进程放到后台,实现与Vim并行运行 - 通过
$!获取后台进程PID,确保Vim退出后能准确停止监控 - 移除了不必要的
--recursive参数(单个文件监控不需要递归)
内容的提问来源于stack exchange,提问作者Unix
相关产品推荐
相关产品推荐

