in reply to Re: different terminal
in thread different terminal

I'm curious what the ) | does.

1 Peter 4:10

Replies are listed 'Best First'.
Re^3: different terminal
by davido (Cardinal) on Jun 10, 2014 at 17:23 UTC

    | opens a pipe (see perldoc perlopentut). ( ... ) delimits a subshell, and can be tested at the command line:

    davido@somehost:~$ ( > date > who > ) Tue Jun 10 11:20:34 MDT 2014 davido :0 2014-06-09 19:35 (:0) davido pts/0 2014-06-09 19:38 (:0)

    See This stackexchange explanation.


    Dave

Re^3: different terminal
by NetWallah (Canon) on Jun 10, 2014 at 17:24 UTC
    It works better without the ")".

    With it, the shell complains:

    sh: 6: Syntax error: ")" unexpected
    but the output is produced anyway.

            What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against?
                  -Larry Wall, 1992

      Actual demo code:

      sh-4.1# cat demo.pl #!/usr/bin/perl -w use strict; my $cmd=qq@ ( date netstat -i who cat /etc/debian_version ) @; open PIPE,"$cmd |" or die "$cmd:$!"; my @lines=<PIPE>; printf "%s\n",join("\n",@lines);
      produces
      sh-4.1# perl demo.pl Tue Jun 10 13:46:05 EDT 2014 Kernel Interface table Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX +-OVR Flg eth0 1500 0 19404144 0 0 0 23405161 0 +0 0 BMRU lo 65536 0 2016133 0 0 0 2016133 0 +0 0 LRU root pts/0 2014-06-10 13:11 (144.160.226.53) 6.0.9

      NOTE: there should be a chomp in there somewhere, but I forgot...


      Peter L. Berghold -- Unix Professional
      Peter -at- Berghold -dot- Net; AOL IM redcowdawg Yahoo IM: blue_cowdawg
        NOTE: there should be a chomp in there somewhere, but I forgot...

        No, things should be kept simple.

        - printf "%s\n",join("\n",@lines); + print @lines;

        All those lines in @lines come with "\n".

        perl -le'print map{pack c,($-++?1:13)+ord}split//,ESEL'

      Funny, doesn't do that on my Linux (Debian 7) box...

      sh-4.1# ( > ls > pwd > date > ) deb7-postinstall-pmaster.sh deb7-postinstall.sh list.txt /var/www/scripts Tue Jun 10 13:40:37 EDT 2014 sh-4.1#


      Peter L. Berghold -- Unix Professional
      Peter -at- Berghold -dot- Net; AOL IM redcowdawg Yahoo IM: blue_cowdawg
        > Funny, doesn't do that on my Linux ...

        Because this time you didn't forget the opening bracket of your subshell ;)

        Cheers Rolf

        (addicted to the Perl Programming Language)