in reply to Back-ticks and bash

Hi Wiggins,

Maybe the '#!' on line 1 isn't run?

That seems to be the case because the line doesn't begin with #!, it begins with the whitespace of the indentation. AFAIK Perl uses /bin/sh to execute backticks, and so it seems your shell script is run with /bin/sh instead of bash, and I guess sh doesn't have the [[ builtin. Remove the indentation and your code works for me.

However, why use a bash script at all, when you could just do all the stuff your bash script is doing in Perl? If you want to capture external commands' STDOUT and STDERR, I'd suggest something like IPC::Run3 or Capture::Tiny.

Hope this helps,
-- Hauke D

Replies are listed 'Best First'.
Re^2: Back-ticks and bash
by Wiggins (Hermit) on Oct 09, 2016 at 13:32 UTC
    Yes, this is what it takes. The leading space breaks the rule. Thanks, it was right there in front of me!

    It is always better to have seen your target for yourself, rather than depend upon someone else's description.