我fswatch
用来跟踪对目录的更改,但如果某个文件存在(使用通配符),我希望这个过程停止。这个特定文件是由另一个进程(正在生成需要跟踪的更改)在替代目录(而不是跟踪目录)中创建的。
这是我试图做的:
while [[ $(shopt -s nullglob; set -- "${file_to_check}"; echo $#) -eq 1 ]]; do
fswatch "${path_to_the_tracked_directory}"
done && echo "Done"
但是,此脚本在出现后不会终止${file_to_check}
。
条件中的复杂位是按照以下方式处理通配符:Bash check if file exists with double bracket test and wildcards
编辑:
复杂位可以简化为:
while [ $(set -- "${path_to_the_file_to_check}"${file_to_check_with_wildcards}; echo $#) -eq 0 ]; do
fswatch "${path_to_the_tracked_directory}"
done && echo "Done"