user3307598
user3307598

Reputation: 525

Why do I get a syntax error in backticks, even though it works in terminal?

I am trying to run a Linux command in Perl using backticks. It works when I run it directly in Linux, but when Perl does it through backticks, I get this error:

sh: -c: line 0: syntax error near unexpected token `>'
sh: -c: line 0: `(/src/storageUtil --diagnostic 2> >(tee >(cat >&2) >&1)) > log.txt'

The line of code in question is:

$output = `(/src/storageUtil --diagnostic 2> >(tee >(cat >&2) >&1)) > log.txt`;

Any insight as to what might cause this error would be greatly appreciated.

Thanks

Upvotes: 8

Views: 728

Answers (1)

Paul R
Paul R

Reputation: 212979

You probably tested your code on the command line with bash but you're trying to run it via sh when you invoke it from Perl.

Either change your command to be compatible with the Bourne shell, or invoke bash explicitly.

Upvotes: 11

Related Questions