Почему stdout не является терминалом, хотя stderr им является? Дайте мне знать, если вам нужен дополнительный контекст, я добавил эту строку, чтобы пройти проверку stackoverflow.
$ php -r 'var_dump(exec("test -t 1 && echo y"));'
string(0) ""
$ php -r 'var_dump(system("test -t 1 && echo y"));'
string(0) ""
$ php -r 'var_dump(passthru("test -t 1 && echo y"));'
NULL
$ php -r 'var_dump(exec("test -t 2 && echo y"));'
string(1) "y"
$ php -r 'var_dump(system("test -t 2 && echo y"));'
y
string(1) "y"
$ php -r 'var_dump(passthru("test -t 2 && echo y"));'
y
NULL
$ php -v
PHP 8.2.20 (cli) (built: Jul 4 2024 02:23:40) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.20, Copyright (c) Zend Technologies
$ uname -rsm
FreeBSD 13.3-RELEASE-p1 amd64
Подробнее здесь: https://stackoverflow.com/questions/791 ... -not-a-tty
Почему стандартный вывод не является терминалом? ⇐ Php
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение