in reply to Re^2: run in-program shell script under windows using cygwin
in thread run in-program shell script under windows using cygwin

Thank you for your comment, AppleFritter, that's even more puzzling. Just in case anyone has any doubt, I can show that my shebang line in the bash script should be correct:
$ which bash /usr/bin/bash
It is a mystery for me at this point. Maybe something to do with the environment variables. To tell the truth, I also have a Strawberry and an ActivePerl instances installed on that MS Win 7 box, this might create problems. But the Perl version used under Cygwin is really the Cygwin Perl version:
$ perl -v This is perl 5, version 14, subversion 4 (v5.14.4) built for cygwin-th +read-multi (with 7 registered patches, see perl -V for more detail) Copyright 1987-2013, Larry Wall Perl may be copied only under the terms of either the Artistic License + or the GNU General Public License, which may be found in the Perl 5 source ki +t. Complete documentation for Perl, including FAQ lists, should be found +on this system using "man perl" or "perldoc perl". If you have access to + the Internet, point your browser at http://www.perl.org/, the Perl Home Pa +ge.

Replies are listed 'Best First'.
Re^4: run in-program shell script under windows using cygwin
by AppleFritter (Vicar) on Jul 30, 2014 at 20:26 UTC

    I've also got Strawberry Perl installed on this box, but no other perls beyond these two. So far, they've never had any conflicts, as far as I was able to tell; invoking perl from a Cygwin shell always gives me Cygwin's perl, invoking it from a DOS command line alwasy gives me Strawberry.

    I've got a slightly different Perl version, though:

    $ perl -v This is perl 5, version 14, subversion 2 (v5.14.2) built for cygwin-th +read-multi-64int (with 7 registered patches, see perl -V for more detail) Copyright 1987-2011, Larry Wall Perl may be copied only under the terms of either the Artistic License + or the GNU General Public License, which may be found in the Perl 5 source ki +t. Complete documentation for Perl, including FAQ lists, should be found +on this system using "man perl" or "perldoc perl". If you have access to + the Internet, point your browser at http://www.perl.org/, the Perl Home Pa +ge. $

    As far as I can tell, this is because I'm using a 32-bit Cygwin (corroborated by the fact that the Cygwin installer is also offering me 5.10.1 and 5.18.2), rather than a 64-bit one. I don't know if this should make a difference, but I couldn't help but notice.

      It suddenly occurred to me that I did a very stupid mistake in my test (although I perfectly knew this had to be part of my test, I just forgot to do it when I ran the test).

      I forgot to change the shell script privileges. So, after realizing this error, I changed the hello.sh script to 755, and I now get the expected output:

      $ perl -e '$command = "./hello.sh"; $out = `$command`; print $out, "\n +";' hello world!
      So, it does work. My error was really silly, because my very first reaction when I read the OP was that, probably, either the shebang line was missing or not correct in the shell script, or the shell script file permissions were not set correctly. And then, I made the test with only one of the two things fixed, not the other. Sorry about that. But, on the other hand, the good news is that it might very well explain the OP's original problem and give her/him a way to solve it.

      To the OP: files permissions may or may not be the source of the problem, try to chmod your shell script to execute rights (755 might be a good parameter), and try again.

        Good catch! I hadn't considered that, but it makes perfect sense. I'll have to file this away in my mind and remember it for the future.
Re^4: run in-program shell script under windows using cygwin
by sandy105 (Scribe) on Jul 31, 2014 at 08:14 UTC

    I get

    $ perl -v

    This is perl 5, version 16, subversion 3 (v5.16.3) built for MSWin32-x86-multi-thread (with 1 registered patch, see perl -V for more detail) Copyright 1987-2012, Larry Wall Binary build 1603 296746 provided by ActiveState http://www.ActiveState.com Built Mar 13 2013 11:29:21 Perl may be copied only under the terms of either the Artistic License or the GNU General Public License, which may be found in the Perl 5 source kit. Complete documentation for Perl, including FAQ lists, should be found on this system using "man perl" or "perldoc perl". If you have access to the Internet, point your browser at http://www.perl.org/, the Perl Home Page.

      This means that you are using a version of Perl for Windows (Active Perl) and not the version for Cygwin. I guess it is less likely to be able launch the shell script the way I was able to do it above with the Cygwin version of Perl (but I can't try now).