Próbuję uruchomić polecenie Linuksa w Perlu za pomocą backticks. To działa, gdy go uruchomić bezpośrednio w Linuksie, ale gdy Perl robi to poprzez backticks, otrzymuję ten błąd:Dlaczego pojawia się błąd składniowy w odbiciach, mimo że działa on w terminalu?
sh: -c: line 0: syntax error near unexpected token `>'
sh: -c: line 0: `(/src/storageUtil --diagnostic 2> >(tee >(cat >&2) >&1)) > log.txt'
linii kodu w pytaniu:
$output = `(/src/storageUtil --diagnostic 2> >(tee >(cat >&2) >&1)) > log.txt`;
Każdy wgląd, co może spowodować, że ten błąd zostanie bardzo doceniony.
Dzięki
Prawdopodobnie przetestowałeś swój kod w wierszu poleceń za pomocą 'bash', ale próbujesz uruchomić go za pomocą' sh', gdy wywołasz go z Perla. –
Jesteś absolutnym geniuszem – user3307598
Proponuję przekierowania plików, ogólnie lepiej będzie "otworzyć" plik wykonywalny dla instalacji rurowej, a następnie obsłużyć plik io siebie, zamiast outsourcować do powłoki. – Sobrique