如何打印导致 fswatch 执行某些操作的文件路径
How to print file path that caused fswatch to do something
我使用 fswatch 在文件更改时执行一些操作。我使用以下命令:
fswatch -o -r '.' | while read MODFILE
do
echo 'Some file changed, so take some action'
done
这工作正常,如果我更改几个文件,我会在终端中看到以下内容:
Some file changed, so take some action
Some file changed, so take some action
Some file changed, so take some action
etc.
但我也想知道究竟是哪个文件导致了该操作。所以我查看了 fswatch 手册页,其中显示如下:
fswatch writes a record for each event it receives containing:
- The timestamp when the event was received (optionally).
- The path affected by the current event.
- A space-separated list of event types (see EVENT TYPES ).
但如前所述,我的终端中没有看到任何列出的内容。有人知道我如何显示“受当前事件影响的路径。”吗?
欢迎所有提示!
当然,使用这个:
fswatch --batch-marker=EOF -xn . | while read file event; do
echo $file $event
if [ $file = "EOF" ]; then
echo TRIGGER
fi
done
如果您想将受影响文件的名称保存在列表中,您可以这样做:
#!/bin/bash
fswatch --batch-marker=EOF -xn . | while read file event; do
if [ $file = "EOF" ]; then
echo TRIGGER
echo Files: "${list[@]}"
list=()
else
echo $file $event
list+=($file)
fi
done
我使用 fswatch 在文件更改时执行一些操作。我使用以下命令:
fswatch -o -r '.' | while read MODFILE
do
echo 'Some file changed, so take some action'
done
这工作正常,如果我更改几个文件,我会在终端中看到以下内容:
Some file changed, so take some action
Some file changed, so take some action
Some file changed, so take some action
etc.
但我也想知道究竟是哪个文件导致了该操作。所以我查看了 fswatch 手册页,其中显示如下:
fswatch writes a record for each event it receives containing:
- The timestamp when the event was received (optionally).
- The path affected by the current event.
- A space-separated list of event types (see EVENT TYPES ).
但如前所述,我的终端中没有看到任何列出的内容。有人知道我如何显示“受当前事件影响的路径。”吗?
欢迎所有提示!
当然,使用这个:
fswatch --batch-marker=EOF -xn . | while read file event; do
echo $file $event
if [ $file = "EOF" ]; then
echo TRIGGER
fi
done
如果您想将受影响文件的名称保存在列表中,您可以这样做:
#!/bin/bash
fswatch --batch-marker=EOF -xn . | while read file event; do
if [ $file = "EOF" ]; then
echo TRIGGER
echo Files: "${list[@]}"
list=()
else
echo $file $event
list+=($file)
fi
done