Я на Ubuntu 14.04, с PHP 5.5.9. Там, у меня есть очень простой файл a.php
:Почему «exec» не выполняет команду до тех пор, пока я не распечатаю ее вывод?
<?php
$a = exec('clear');
print($a);
Если я запустить сценарий как теперь я получаю:
$ php a.php
<screen cleared> # nothing is displayed in the screen
# "clear" was performed successfully
Однако, если я закомментировать print($a)
просто есть файл, как это:
<?php
$a = exec('clear');
ничего не происходит:
$ php a.php
$ # nothing happened, I see the previous line above
Насколько я понимаю, это вызов переменной $a
, что делает clear
. Но это не имеет особого смысла, так как exec() docs говорит:
Exec - Выполнить внешнюю программу
Есть ли причина, почему clear
не получает выполняется до тех пор, print()
называется?
Обратите внимание, что это связано с вопросом Clear CMD-shell with php, но я спрашиваю здесь , почему это происходит.
Ум, чтобы объяснить причину понижения? Я буду рад дать больше информации тем, кого интересует этот вопрос. – fedorqui
Я переформулировал вопрос, чтобы выразить то, что я точно хотел сказать: * Почему не происходит очистка? * – fedorqui