Firstly, i should clarify the problem definition asap by including this fourth example which shows a pipe working fine when it is not preceded by command substitution:
$ grep 2 test.txt | grep 3 grep 2 test.txt | grep 3 + grep 2 test.txt + grep 3 23 Thanks Brian for all the suggestions and for showing it running on Win10.0.14393. Below is from the culprit: ==== $ cmd /c ver Microsoft Windows [Version 10.0.15063] $ uname -svrmo CYGWIN_NT-10.0 2.8.0(0.309/5/3) 2017-04-01 20:47 x86_64 Cygwin $ bash --version GNU bash, version 4.4.12(3)-release (x86_64-unknown-cygwin) Copyright (C) 2016 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software; you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. ==== I don't want to waste any time on this list if the cause is my user error but this is a different build of Win10 and i have rerun setup (including autorebase) and tested with BLODA off, including all AV, and <CYGWIN=detect_bloda> which reported nothing. You say that "Command substitution adds arguments to the command line and does not interfere with pipes" which i also believe is the intended behaviour and why i have raised this as a potential bug according to the output from the four examples with <set -xv>. Do they not show that it is the combination of the pipe and the command substitution which is not working? Finally, did you mean that i should try Cygwin 32? or to check that i was not using Cygwin 32? Thanks again. -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple