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