bash doesn't like nested single quotes, even with escapes. So the first \'
gave you a literal backslash and ended the quoted part, then the second \'
gave you a literal ' and continued without quoting. The final ' would then
open a new quoted string, but bash doesn't get that far because it sees the
(now unquoted) parentheses and tries to parse them as a command expansion.

allbery@pyanfar ~/Downloads $ echo 'x\'y\'z'
> ^C

Note that it thinks it's still in a quoted string and wants me to continue.

On Sun, Jun 3, 2018 at 5:28 PM ToddAndMargo <toddandma...@zoho.com> wrote:

> Hi All,
>
> What am I doing wrong here?
>
>
>       $ p6 'lib \'./\'; use RunNoShell; ( my $a, my $b ) =
> RunNoShell::RunNoShell("ls *.pm6"); say $a;'
>
>       bash: syntax error near unexpected token `='
>
> Huh ???
>
>
> This is RunNoShell.pm6
>
>      sub RunNoShell ( $RunString ) is export {
>         ...
>         return ( $ReturnStr, $RtnCode );
>      }
>
> Many thanks,
> -T
>


-- 
brandon s allbery kf8nh                               sine nomine associates
allber...@gmail.com                                  ballb...@sinenomine.net
unix, openafs, kerberos, infrastructure, xmonad        http://sinenomine.net

Reply via email to