当尝试使用-B选项从Linux shell执行PHP解释器时,会执行提供的开始_code,但进程会阻塞,主脚本(f2.php
)不会执行。
问题再现:
$ php -v
PHP 8.1.13 (cli) (built: Nov 22 2022 14:42:07) (NTS gcc x86_64)
Copyright (c) The PHP Group
Zend Engine v4.1.13, Copyright (c) Zend Technologies
with Zend OPcache v8.1.13, Copyright (c), by Zend Technologies
$ cat f2.php
<?php
echo "f2 running.\n";
?>
$ php f2.php
f2 running.
$ php -B 'echo "init\n";' f2.php
init
并且shell阻塞了。我必须使用ctrl+C返回到提示符。我期望脚本f2.php
也被执行。我做错了什么?
1条答案
按热度按时间qojgxg4l1#
当使用
-B
参数时,PHP进入交互模式。要执行f2.php
,您需要添加-F
参数,但只有在您按下ENTER键后,它才会运行您的脚本:要使PHP进入非交互模式,可以在
php
命令中输入一些内容,PHP将运行init代码和脚本,然后终止: