php proc_open дескриптор файла в команде bash

Когда мы используем proc_open в PHP:

<?php

$descriptors = array(
array('pipe', 'r'),
array('pipe', 'w'),
array('pipe', 'w'),
);

$cmd = 'cat <(ls)';
//$cmd = 'ls';
echo $cmd . PHP_EOL;
$ph = proc_open($cmd, $descriptors, $pipes);
echo stream_get_contents($pipes[1]);
echo stream_get_contents($pipes[2]);
proc_close($ph);

При запуске этого скрипта произошла ошибка:

$ php test.php
cat <(ls)
sh: 1: Syntax error: "(" unexpected

но запустите raw cmd:

$ cat <(ls)
clusterRegions.php
composer.json
composer.lock
cvCells.php
kent
prepareForTF.php
README.txt
scoreRegions.php
test.php
tests
vendor

Кажется, что <() вещь не может быть распознана proc_open,
Итак, как передать команду bash с файловым дескриптором proc_open ?

0

Решение

@Etan Reisner, вы правы, когда я перехожу на bashработает хорошо.

$cmd = 'bash -c "cat <(ls)"';
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]