Почему результат равен 0, а иногда 1-Shell exec ('pgrep-f


Сценарий:

$S = 'pgrep -f test.php | wc -l';
$U = trim(shell_exec($S));
echo $U;

Почему результат этого скрипта равен 0, а иногда 1?

Файл test.php не запущен.

1 2

1 ответ:

Проблема заключается в том, что при выполнении команды pgrep -f test.php | wc -l она будет иногда (в зависимости от времени) проявляться в результатах. Вы можете предотвратить это в соответствии с вопросом на Linux & Unix SE, используя следующий синтаксис:

pgrep -f '[t]est.php' | wc -l
Часть с скобками в основном говорит: "Найдите букву t , за которой следует est.php ", который найдет файл, если он запущен, но не будет соответствовать текущей выполняемой команде, потому что после t следует скобка [.