如何使用php内置的Web服务器在一个命令中从当前目录服务和打开网站?
php内置Web服务器使用的命令是:
php [options] -S <addr>:<port> [-t docroot]
然而,这是一个正在运行的命令,因此以下命令不起作用:
php -S 127.0.0.1:8000 && open 127.0.0.1:8000
目的是创建一个单独的别名命令,在启动Web服务器后直接在浏览器中打开网站(全部来自一个命令):
alias lserve="php -S 127.0.0.1:8000 && open 127.0.0.1:8000"
在后台运行服务器:
php -S 127.0.0.1:8000 & open 127.0.0.1:8000
请注意,我只使用一个&
,它在后台启动作业。这与逻辑和运算符&&
无关。Bash的语法不允许&
后面的命令由;
分隔
然而,这一解决方案仍然存在问题。由于服务器是在后台运行的,因此不能使用单个^C
同时关闭浏览器和服务器。要实现这一点,您需要在子shell中启动两个命令:
(trap 'kill 0' SIGINT; php -S 127.0.0.1:8000 & open http://127.0.0.1:8000)
现在你可以把它放进一个别名:
alias lserve="(trap 'kill 0' SIGINT; php -S 127.0.0.1:8000 & open http://127.0.0.1:8000)"
为了帮助路过这里的人:
chromium浏览器应用程序=http://127.0.0.1:8000|php-S 127.0.0.1:8000