【发布时间】:2021-08-24 09:57:19
【问题描述】:
我正在使用WSL(windows子系统linux)本地开发PHP文件。
我正在使用内置的 PHP 服务器通过 Ubuntu 运行它们:
php -S localhost:8000
我已经为我创建了一个 Bashrc 函数来执行此操作,但它在创建 localhost 后暂停。
phpLocal(){
php -S localhost:"$1"
cmd.exe /C start http://localhost:"$1"
}
目标是跑
phpLocal 8200
这会打开一个本地主机运行localhost:8200的网络浏览器。
问题
Bash 接受命令 - 即在端口 8200 上创建 localhost 服务器,但浏览器不会打开它。
然后当我取消命令时,浏览器确实会打开它,但是因为命令已被取消,所以没有什么可以打开的..
我怀疑我在 bash 如何运行函数方面遗漏了一些内容。
任何帮助都会很棒 - 沃利
-- 要求的信息
我这样调用这个函数
phpLocal 8200
-- 重命名问题,因为我相信它不是重复的,但问题的答案是相同的。我认为它对于搜索与 bash 函数相关的更广泛术语的人们很有价值......
【问题讨论】:
-
@Wally :还请在您的帖子中(不是在屏幕截图中)显示您如何调用此函数。另外,我会尝试在后台运行“cmd.exe”。顺便说一句,没有 Bashrc 函数 这样的东西。你所拥有的只是一个 bash 函数。
-
我没有 WSL,但我会像使用其他程序一样使用它,即使用
&终止它。但是,我会先尝试sleep。我也会尝试使用带有其他 URL(google.com或类似的东西)的cmd /c start ...。另一件值得尝试的事情是打开两个 shell:一个启动 PHP 服务器,另一个启动浏览器。我的直觉是,这确实是一个时间问题,如果我是对的,在后台运行不会改善它。 -
您是否已经尝试在后台启动服务器,以便在服务器终止之前执行下一个命令?试试
php -S localhost:"$1" &。 -
IMO,Jeff Schaller 应该得到公认的答案。
-
@Wally 我理解你的观点,这个问题有 的独特性,但大多数重复项可能都是如此。允许这样的重复的问题在于,实际上有无数个可能的命令,您可能希望在 shell 脚本的后台运行。链接的副本涵盖了问题和答案中的核心问题。对于每个可能的咒语,单独的问题/答案是没有意义的。
标签: bash windows-subsystem-for-linux