如何将windows.exe文件的输出通过管道传输到Cygwin中的while read行循环?

如何将windows.exe文件的输出通过管道传输到Cygwin中的while read行循环?,cygwin,inotifywait,Cygwin,Inotifywait,是否可以从Cygwin中运行的shell脚本调用.exe文件,以便将结果通过管道传输到while read line循环 我尝试的代码在Linux中工作(inotifywait是我在Cygwin中尝试的应用程序,安装在Linux中) 我找到了Windows版inotifywait的.exe版本,但似乎无法从Cygwin中的管道读取读取行循环 下面的代码能够从shell脚本初始化inotifywait.exe,但从未向Cygwin终端输出任何行 DIR=“c:/tmp” ./inotifywait

是否可以从Cygwin中运行的shell脚本调用.exe文件,以便将结果通过管道传输到while read line循环

我尝试的代码在Linux中工作(inotifywait是我在Cygwin中尝试的应用程序,安装在Linux中)

我找到了Windows版inotifywait的.exe版本,但似乎无法从Cygwin中的管道读取读取行循环

下面的代码能够从shell脚本初始化inotifywait.exe,但从未向Cygwin终端输出任何行

DIR=“c:/tmp”
./inotifywait-mr-e创建、修改、删除、移动\
--时间表“%m/%d/%y%H:%m:%S”--格式“%T;”f、 %e、 %w'$DIR|
读行时
做
回音$线
完成

可能性是
inotifywait
输出到stderr。如果是这种情况,您还需要管道strr

./inotifywait |& while read line ^ | --- notice the ampersand ./inotifywait |读取行时(&I) ^ | ---注意符号和
我将功能分为两个文件

第一个脚本调用inotifywait并将结果转换为一个名为“test”的文件

DIR=“c:/tmp”
(inotifywait-mr--timefmt“%m/%d/%y%H:%m:%S”\
--格式'%T;%f;%e;%w'$DIR)|测试(&T)
第二个脚本对tail-f测试的输出执行while-do循环。“test”是文件名

tail-f测试|
读行时
做
#在字段之间使用分号形成行字符串
lineString=$(echo$line | awk-F'[;]''echo$1;$2;$3;$4')
#将元素存储在数组中

如果s=';'在|(不带和号)和|(带和号)后进行T形三通时,我看到输出。不幸的是,我无法将命令的输出转到循环。如果在管道之前将stderr重定向到stdout,是否有效?像这样/inotifywait 2>&1 |读取线路回波“测试”完成时,向终端输出“测试”,但仅输出一次。我正在尝试在每个新输出上输出到循环。我如何知道inotifywait输出到哪里?当我在inotifywait.exe(从cygwin shell脚本调用的Windows可执行文件)中使用-m选项时,我能够看到输出。有没有办法在脚本的while read line循环中获取输出?首先通过Windows
more
findstr
管道验证exe是否正在写入标准输出。然后在读取时尝试
windows命令| dos2unix…