首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Inotifywait不运行命令

Inotifywait不运行命令
EN

Stack Overflow用户
提问于 2012-09-07 05:36:12
回答 2查看 2.8K关注 0票数 2

我在同一目录中有一个名为watch.sh的基本inotifywait脚本和一些以.styl结尾的文件。下面是脚本,它捕获更改,但不在do/do中执行代码

我像sh watch.sh一样初始化它,下面是脚本

代码语言:javascript
复制
#!/bin/sh

while inotifywait -m -o ./log.txt -e modify ./*.styl; do
  stylus -c %f
done

我尝试在exec部分中使用echo "hi",但没有执行任何内容

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-09-07 05:48:43

您遇到的问题与inotifywait-m选项有关。这会导致该命令永远不会退出。由于while会检查命令的退出状态,因此命令必须退出才能继续执行循环。

以下是手册页中对-m的描述:

代码语言:javascript
复制
Instead of exiting  after  receiving  a  single  event,  execute
indefinitely.   The default behaviour is to exit after the first
event occurs.

删除-m选项应该可以解决您的问题:

代码语言:javascript
复制
while inotifywait -o ./log.txt -e modify ./*.styl; do
  stylus -c %f
done
票数 4
EN

Stack Overflow用户

发布于 2014-10-20 22:02:49

试试这个:

代码语言:javascript
复制
while K=`inotifywait -o ./log.txt --format %f -e modify ./*.styl`; 
do 
   stylus -c $K;
done
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12308761

复制
相关文章

相似问题

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