Pipe after Command Substitution does not resolve the substitution:
Marco Atzeri
marco.atzeri@gmail.com
Wed Jun 14 10:34:00 GMT 2017
On 14/06/2017 09:41, Jon Bord wrote:
> Hi,
>
> This is the first time i've ever submitted a bug report so i hope the
> below is ok. I am not a programmer although i do do some scripting.
>
> The below is the kind of 'command substitution then pipe' that i often
> used in Cygwin on Windows 7. Now that i've been forced to move to
> Windows 10 it no longer seems to work. I'm assuming that this is not a
> feature of an upgraded Bash but maybe i'm wrong, eg maybe we are now
> supposed to put everything in variables rather than use command
> substitution.
>
> Windows 10
> bash 4.4.11(2) and 4.4.12(3)
>
> $ set -xv
>
> (EXAMPLE 1: COMMAND SUBSTITUTION WORKS AS EXPECTED)
> $ grep 2 $(ls | tail -1)
> grep 2 $(ls | tail -1)
> ++ ls
> ++ tail -1
> + grep 2 test.txt
> 2
> 23
>
> (EXAMPLE 2: HANGS)
> $ grep 2 $(ls | tail -1) | grep 3
> grep 2 $(ls | tail -1) | grep 3
> + grep 3
> + grep 2
>
> (EXAMPLE 3: HANGS)
> $ grep 2 `ls | tail -1` | grep 3
> grep 2 `ls | tail -1` | grep 3
> + grep 3
> + grep 2
>
> Would it be correct to conclude from the above output that once the
> pipe is added then it is ignoring the substitution?
>
Hi Jon,
all the examples work for me on W7 64 with cygwin 64bit.
$ ls
prova.txt
$ cat prova.txt
1
2
3
23
$ grep 2 $(ls | tail -1)
2
23
$ grep 2 $(ls | tail -1) | grep 3
23
$ grep 2 `ls | tail -1` | grep 3
23
can you provide your cygcheck.out ?
Problem reports: http://cygwin.com/problems.html
--
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
More information about the Cygwin
mailing list