首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何打印导致fswatch做某事的文件路径

如何打印导致fswatch做某事的文件路径
EN

Stack Overflow用户
提问于 2016-02-14 18:49:36
回答 1查看 2.7K关注 0票数 1

当文件更改时,我使用fswatch执行一些操作。我使用以下命令:

代码语言:javascript
复制
fswatch -o -r '.' | while read MODFILE
do
    echo 'Some file changed, so take some action'
done

这很好,如果我更改了几个文件,我会在终端中看到以下内容:

代码语言:javascript
复制
Some file changed, so take some action
Some file changed, so take some action
Some file changed, so take some action
etc.

但我也想知道到底是哪个文件导致了这一行动。因此,我检查了fswatch手册页,它显示了以下内容:

代码语言:javascript
复制
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 ).

但如前所述,我在航站楼上没有看到任何东西。有人知道我如何显示“受当前事件影响的路径”吗?

欢迎所有小费!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-14 19:17:06

当然,用这个:

代码语言:javascript
复制
fswatch --batch-marker=EOF -xn . | while read file event; do 
   echo $file $event
   if [ $file = "EOF" ]; then 
      echo TRIGGER
   fi
done

如果要将受影响文件的名称保存在列表中,可以这样做:

代码语言:javascript
复制
#!/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
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35395699

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档