首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

watchman cli用于查看包含排除和包含列表的多个文件夹的选项,触发脚本并查看脚本的stdout/stderr

Watchman 是一个用于监视文件系统变化的工具,它可以帮助开发者跟踪文件的变化并在变化发生时执行相应的操作。以下是关于 Watchman CLI 的一些基础概念以及相关的使用选项:

基础概念

  1. 监视(Watching):Watchman 持续监视指定的文件或目录,以便在文件发生变化时得到通知。
  2. 触发脚本(Trigger Scripts):当监视的文件发生变化时,Watchman 可以执行预先定义的脚本。
  3. 包含列表(Include List):指定需要监视的文件或目录。
  4. 排除列表(Exclude List):指定不需要监视的文件或目录。

使用选项

  • -w--watch:指定要监视的目录。
  • -t--trigger:定义触发脚本及其参数。
  • --include:指定包含列表。
  • --exclude:指定排除列表。
  • -o--output:指定输出格式,可以是 stdout 或 stderr。

示例

假设我们有一个项目目录 my_project,我们想要监视这个目录下的所有 .js 文件,但排除 node_modules 目录,并且在文件变化时执行一个简单的脚本 my_script.sh

代码语言:txt
复制
watchman watch my_project
watchman -- trigger my_project '*.js' --include 'my_project/**/*.js' --exclude 'my_project/node_modules/**' my_script.sh

在这个例子中,my_script.sh 可能是这样的:

代码语言:txt
复制
#!/bin/bash
echo "File changed: $1"

这个脚本会在任何 .js 文件变化时被触发,并打印出变化的文件路径。

查看脚本的 stdout/stderr

要查看触发脚本的输出,可以直接在命令行中运行 Watchman 命令,并观察终端的输出。如果需要将输出重定向到文件,可以使用重定向操作符:

代码语言:txt
复制
watchman -- trigger my_project '*.js' --include 'my_project/**/*.js' --exclude 'my_project/node_modules/**' my_script.sh > output.log 2>&1

这将把标准输出和标准错误都重定向到 output.log 文件。

可能遇到的问题及解决方法

问题: 触发脚本没有执行。

原因: 可能是因为文件变化没有正确地被 Watchman 捕获,或者脚本的路径不正确。

解决方法:

  • 确保 Watchman 正确监视了指定的目录。
  • 检查脚本的路径是否正确,并确保脚本具有执行权限。
  • 使用 -v--verbose 选项增加 Watchman 的输出详细程度,以便调试。
代码语言:txt
复制
watchman --verbose --trigger my_project '*.js' --include 'my_project/**/*.js' --exclude 'my_project/node_modules/**' my_script.sh

通过这些步骤,你应该能够有效地使用 Watchman CLI 来监视文件变化并执行相应的脚本。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

SLURM使用教程

cpu核,可理解为作业所需的cpu核数 socket:cpu插槽,可理解为物理cpu颗数 stdout:标准输出文件,程序运行正常时输出信息的文件,一般指输出到屏幕的信息 stderr:标准错误文件,程序运行出错时输出信息的文件...此脚本一般会包含一个或多个srun命令启动并行任务 sinfo:显示分区或节点状态,可以通过参数选项进行过滤、和排序 squeue:显示队列的作业及作业状态 scancel:取消排队或运行中的作业 scontrol...:显示或设定slurm作业、分区、节点等状态 sacctmgr:显示和设置账户关联的QOS等信息 sacct:显示历史作业信息 srun:运行并行作业,具有多个选项,如:最大和最小节点数、处理器数、是否指定和排除节点...批处理模式提交作业 1.用户编写作业脚本 2.提交作业 3.作业排队等待资源分配 4.在首节点加载执行作业脚本 5.脚本执行结束,释放资源 6.用户在输出文件中查看运行结果 ?...开头,指定解释程序 脚本中可通过srun加载计算任务 一个作业可包含多个作业步 脚本在管理节点上提交,实际在计算节点上执行 脚本输出写到输出文件中 以下是一些常见的作业资源需求参数,使用#SBATCH

9.1K21

学习 React Native for Android:环境搭建

watchman 是 Facebook 的一个用于监控文件变更并触发指定操作的工具: $ brew install watchman 安装 flow Flow 是一个 JavaScript 的静态类型检查器...为了方便编译 React Native 的工程,建议再安装一个终端插件,用于快速打开终端并定位到当前项目根路径。...: 仔细观察这个工程,你会发现如下的内容: node_modules 文件夹,这是 Node.js 用来存放和管理 npm 包的文件夹,现在这里包含了 React Native 框架。...android 文件夹和 ios 文件夹。包含了用于生成两个平台的 App 的 Bootstrap 型项目。...自动刷新界面 如果希望每次修改 JS 脚本后自动刷新应用的界面,可以再次进入应用的选项界面,把 【Auto reload on JS Change】 选项打开: 这样当 watchman 发现你的 JS

1.4K20
  • Supervisor | 笔记

    : supervisortd、supervisorctl、echo_supervisord_conf, 分别是supervisor的 守护进程服务(用于接收进程管理命令)、客户端(用于和守护进程通信,发送管理进程的指令...] files = relative/directory/*.ini ;可以指定一个或多个以.ini结束的配置文件 创建文件夹用于 存放 子进程配置文件 mkdir /etc/supervisord.d...如任意定义一个和脚本相关的项目名称的选项组( /etc/supervisord.d/test.conf ) # 项目名 [program:blog] # 脚本目录 directory=/opt/bin...当程序exit的时候,这个program不会自动重启,默认unexpected,设置子进程挂掉后自动重启的情况,有三个选项,false,unexpected和true。...默认值为1 startsecs=1 # 脚本运行的用户身份 user = test # 日志输出 stderr_logfile=/tmp/blog_stderr.log stdout_logfile

    1.1K20

    使用 inotify 和 rsync 实现文件实时同步

    它仅通过传输源和目标之间的差异来提供快速的增量文件传输。Rsync可用于镜像数据,增量备份,在系统之间复制文件,可替代scp,sftp 和 cp 日常等使用的命令。...,全局参数只有少数几个,一般保持默认即可# 模块以[模块名]开头,后续参数仅作用于该模块# 卸载模块外的参数适用于所有模块# rsyncd.conf文件的指令和值请参考 man rsyncd.conf...同步脚本3.1 rsync 排除多个文件和目录# 举例1,排除文件file1.txt,目录dir1下的所有内容,目录dir2# vim /tmp/include.txt*# vim /tmp/exclude.txt...inotify 监听 和 rsync 同步脚本#!.../ #rsync同步的文件夹 des=backup #rsync同步的目标模块名 user=rsyncbackuptest #默认用户include=/tmp/include.txt #同步列表 exclude

    1.8K30

    前端自动化部署的深度实践

    Header包含type, scope, subject等部分,分别用于描述commit类型,影响范围,commit简述。Body则是详细描述,可以分多行写。...conventional-changelog是一个很好的工具,用于自动生成changelog,再配上自定义的部署脚本,整个部署流程就显得更规范了 Breaking Change: 比较大的更新 Closes...CHANGELOG自动更新 npm钩子触发部署脚本 通过postversion钩子触发部署脚本node deploy,开始进行部署工作。..., stderr) => { if (err) { throw err; } console.log(stdout); }); 这里利用了nodejs的 child_process...我这里使用了软连接改进了之前的部署脚本,既可以在服务器保留各个历史版本文件夹,也不用考虑处理index.html与静态资源分离的问题。

    1.1K31

    如何写出安全的、基本功能完善的Bash脚本

    EOF   exit } 尽量让usage()函数相对靠近脚本的顶部,有两种作用: 要为不知道所有选项并且不想查看整个脚本来发现这些选项的人显示帮助。...knows a little about building CLI apps stdout用于输出,stderr用于消息传递。...这就是为什么在大多数情况下你不应该为stdout使用颜色。 用msg()打印的消息被发送到stderr流并支持特殊的序列,比如颜色。...要检查stderr是不是交互式终端时的行为,请在脚本中添加类似于上面的一行。然后执行它,将stderr重定向到stdout并通过管道将其发送到cat。...复制后,只需更改4件事: 包含脚本说明的usage()文本 cleanup()内容 parse_params()中的参数–保留--help和--no color,但替换示例:-f和-p 实际的脚本逻辑

    57230

    深入解析 Node.js 的 console.log

    每个进程都有三个可用的默认 stream。那些是 stdin,stdout 和 stderr。 stdin 流用来在处理进程的输入。例如按下按钮或重定向输出。 stdout 流用于程序的输出。...最后 stderr 用于错误消息。...通常应该是以下情况之一: 在开发过程中快速调试意外行为 基于浏览器的分析或诊断日志记录 记录你服务器上传入的请求,以及所有可能发生的故障 使用库的日志调试选项来帮助用户解决问题 在 CLI 输出进度、确认消息或错误信息...消息 - 包含某些内容的实际消息 可能会需要的其它变量或信息 既然一切都会被转到 stdout 和 stderr,那么我们可能会想要不同的日志级别,还有配置和过滤日志的能力。...可以通过查看 transports 文档了解为什么 pino 中的错误不会写入 stderr。 让我们用工具 pino-pretty 来查看更易阅读的日志版本。

    2K50

    Android Debug Bridge

    sqlite3 工具包含很多有用的命令,例如 .dump 用于输出表格的内容,.schema 用于为已经存在的表输出 SQL CREATE 语句。 并且该工具也提供了联机执行SQLite命令的能力。...,以下是可以指定的缓冲区: radio — 查看包含在无线/电话相关的缓冲区消息 events — 查看事件相关的消息 main — 查看主缓冲区 (默认缓冲区) -b 选项的用法:...[adb] logcat [-b ] 例如查看radio缓冲区: adb logcat -b radio 查看stdout和stderr 默认的,Android系统发送 stdout...在 Dalvik VM进程,可以将输出 复制到日志文件,在这种情况下,系统使用 stdout 和 stderr标记写入日志,优先级是I。...-c 清空(刷新)所有的日志并且退出 -d 在屏幕上输出日志并退出 -f 将日志输出到文件,默认输出是stdout.

    1.5K21

    Vue + Node.js 从 0 到 1 实现自动化部署工具

    ,node 使用内置子进程 spawn 可以执行 shell 脚本文件、跑 terminal 下运行的命令操作 2.3 spawn 执行时,子进程 stdout, stderr 可以获取到脚本执行 log...ls.stdout 接收到 log 信息并打印 testShellLs.png 回到正题,这里需要执行 shell 脚本,可以将 ls \-lh /usr 替换为 sh 脚本文件.sh 即可。...功能优化 1.使用 socket 实时输出 log 上面的例子中,普通接口需要等部署脚本执行完成后再响应给前端,如果脚本中包含 git pull、npm run build 等耗时较长的命令,就会导致前端页面一直没...请求该接口,触发部署。...,创建一个 npm 包并上传到 npm 官方库步骤 需要有 npm 账号,如果没有可以到 www.npmjs.com/[5] 注册一个,我的用户名是 'guoqzuo' 创建一个文件夹,用于存放 npm

    1.7K20

    分享一个 Vue + Node.js 从 0 到 1 实现自动化部署的工具

    ,node 使用内置子进程 spawn 可以执行 shell 脚本文件、跑 terminal 下运行的命令操作 2.3 spawn 执行时,子进程 stdout, stderr 可以获取到脚本执行 log...ls.stdout 接收到 log 信息并打印 testShellLs.png 回到正题,这里需要执行 shell 脚本,可以将 ls \-lh /usr 替换为 sh 脚本文件.sh 即可。...功能优化 1.使用 socket 实时输出 log 上面的例子中,普通接口需要等部署脚本执行完成后再响应给前端,如果脚本中包含 git pull、npm run build 等耗时较长的命令,就会导致前端页面一直没...请求该接口,触发部署。...,创建一个 npm 包并上传到 npm 官方库步骤 需要有 npm 账号,如果没有可以到 www.npmjs.com/[5] 注册一个,我的用户名是 'guoqzuo' 创建一个文件夹,用于存放 npm

    2.3K10

    《Ansible自动化运维:技术与最佳实践》第三章读书笔记

    列表 Ansible 支持多个 Inventory 文件,方便管理维护不同业务或环境中的机器。...下面介绍如何使用多个 Inventory 文件。 首先新建一个文件夹用来存放 Inventory 文件 mkdir inventory 并在文件夹内新建文件,webservers 和 hosts。...": "", "stderr_lines": [], "stdout": "web1", "stdout_lines": [ "web1" ] }...": "", "stderr_lines": [], "stdout": "web2", "stdout_lines": ["web2"]} 复制文件 可以使用 copy 模块来批量下发文件,文件的变化是通过...Ansible facts facts 组件是 Ansible 用于采集被管机器设备信息的功能,可使用 setup 模块查看机器所有 facts 信息,或使用 filter 来查看指定信息(返回的结果是

    1.1K30

    用oclif,码得更快了,30秒创建脚手架

    背景 前端很多 cli 工具,比如著名的 vue-cli,这些工具大多数都是作用于快速创建对应框架的模版代码,让开发者可以不用从0开始配置项目,可以专注于项目本身的业务逻辑开发,从而快速创建项目。...cli 类型 oclif 有2种 cli 类型,单个命令模式和多个命令模式。单个 cli 命令,例如 ls 、cat,它可以接收参数和标志符,单个命令的 cli 可以是一个单文件。...cli 模版生成器, 快速初始化一个命令行项目模版,快速进行开发。 单元测试方便,生成器将自动创建脚手架测试使命令更易于测试和模拟 stdout/stderr。...自动文档,默认情况下,您可以传递--help给CLI以获取帮助,例如标志选项和参数信息。每当发布CLI的npm软件包时,此信息也将自动放置在README.md中。...插件,使用插件,CLI的用户可以使用新功能对其进行扩展,CLI可以拆分为模块化组件,并且可以在多个CLI之间共享功能。 钩子,使用生命周期挂钩可在CLI启动时或在自定义触发器上运行功能。

    1.1K20

    windows常用命令

    ,并切换当前目录为c:\mp3 popd // 将刚才保存的d:\mp4弹栈,并设置为当前目录 dir 显示目录中的内容 例:dir // 显示当前目录中的子文件夹与文件 例:dir /b  // 只显示当前目录中的子文件夹与文件的文件名...\PluginsDest /MIR /xd Intermediate Binaries  // 将当前目录下Plugins中所有内容(排除名为Intermediate和Binaries的文件夹)保留目录结构拷贝到当前目录下的...)和错误信息(stderr)执行find命令(输出当前文件夹及所有子文件夹里的.exe文件的个数) > 将当前命令输出以覆盖的方式重定向 例:tasklist > p1.txt // 将tasklist...//  将命令的错误信息(stderr)重定向到输出结果(stdout),然后不打印输出结果(stdout)【屏幕上错误信息(stderr)和输出结果(stdout)都不打印】(注:bin目录不存在时,...会输出错误信息) 例:dir bin 2>nul 1>&2   //  将命令的输出结果(stdout)重定向到错误信息(stderr),然后不打印错误信息(stderr)【屏幕上错误信息(stderr

    2K20

    linux进程管理工具-supervisor

    但突发崩溃情况就不能很好的保证进程在后台的驻留。 supervisor是一个python脚本编写的工具,可以起到很好的管理、监控进程的作用。...配置 查看supervisord.conf supervisord已自动启动 使用 ps -aux|grep supervisord 查看supervisord进程信息,-c参数就是指定使用的配置文件...: [include] files = /etc/supervisord.d/*.ini 这里表示supervisord会读取/etc/supervisord.d/目录下的所有ini配置文件;这里支持多个文件列表的传入...c /etc/supervisord.conf /etc/supervisord.conf为默认的配置文件,可自定 查看 cli方式 > supervisorctl #进入命令行 > reload...但是可以使用awk来达到效果 比如我想重启所有包含_kline关键字的进程脚本名 /usr/bin/supervisorctl restart *_kline ,让它匹配*_kline符合的name进程脚本名

    89530

    Sketch 插件开发官方文档合集插件基础您的第一个插件开发环境调试ActionAPI发布插件插件捆绑插件,脚本和命令插件位置更多关于CocoaScriptSketchTool参考资源

    扩展示例 - 您可以查看和构建的扩展示例列表。 开发者论坛 - 一个论坛,插件开发者分享他们关于Sketch的所有知识的知识。 插件基础 在磁盘上,插件只是以特定布局排列的文件夹。...它包含一个或多个脚本。每个脚本定义一个或多个以某种方式扩展Sketch的命令。它还可以包含命令用于执行任何操作的任何其他可选资源(如图像)。 插件脚本使用JavaScript编写。...插件:一组脚本,命令和其他资源组合在一起作为一个独立单元 Plugin Bundle:磁盘上的文件夹,其中包含组成插件的文件 操作:用户所做的事情(选择菜单或更改文档)触发命令 命令:一个插件可以定义多个命令...每个脚本定义一个或多个以某种方式扩展Sketch的命令。 在磁盘上,插件是具有.sketchplugin文件扩展名的文件夹,包含文件和子文件夹。...插件捆绑文件夹结构 Bundles包含一个manifest.json文件,一个或多个.cocoascript文件(包含用CocoaScript或JavaScript编写的脚本),它们实现Plugins菜单中显示的命令以及任意数量的共享库脚本和资源文件

    6.4K90

    Cobra 命令自动补全指北

    使用如下命令,即可生成用于命令自动补全的代码: $ cobra add completion 或者也可以创建 cmd/completion.go 文件,来放置用于生成命令自动补全脚本的代码: var completionCmd...os.Stdout) } },} 官方推荐将生成内容输出到 os.Stdout,只需上面这些简单的命令,即可在你的 CLI 工具中新增 completion 子命令,执行该命令即可生成相应...如果加载了配置文件,os.Stdout 可能会打印多余的信息,这会导致自动补全脚本失效,所以请避免这种情况。...当然 Cobra 还不是完美的,比如生成的 Zsh 脚本有些问题,kubectl 和 helm 都是使用将其生成的 Bash 自动补全脚本转化为 Zsh 的自动补全脚本的方式。...但不得不承认,Cobra 是一个非常好用的 CLI 工具构建框架,很多流行的 CLI 工具都是使用它来构建的,这也是为什么使用 GO 语言编写的 CLI 工具如雨后春笋般快速的出现并占据了云原生工具的关键位置

    2.7K20

    Shell脚本学习3

    当n>=10时,需要使用 特殊变量 说明 $# 传递给函数的参数个数。 $* 显示所有传递给函数的参数。 $@ 与$*相同,但是略有区别,请查看Shell特殊变量。 $? 函数的返回值。...command 2 > file # stderr 重定向到 file command 2 >> file #stderr 追加到 file 文件末尾 command > file 2>&1 # stdout...和 stderr 合并后重定向到 file command file2 # stdin 和 stdout 都重定向 全部可用的重定向命令列表: 命令 说明 command > file...屏蔽 stdout 和 stderr: command > /dev/null 2>&1 Shell文件包含 Shell 也可以包含外部脚本,将外部脚本的内容合并到当前脚本。...Shell 中包含脚本可以使用 . filename 或 source filename 。 两种方式的效果相同,简单起见,一般使用点号(.),但是注意点号(.)和文件名中间有一空格。 . .

    23820
    领券