【问题标题】:bash function executes php but then pauses / bash function gets stuck [duplicate]bash函数执行php但随后暂停/ bash函数卡住[重复]
【发布时间】: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


【解决方案1】:

当你执行这个函数时:

phpLocal(){
        php -S localhost:"$1"
        cmd.exe /C start http://localhost:"$1"
}

...php 命令在前台执行。如果您希望它继续执行以便cmd.exe 行可以执行,您可以将phpin the background with the & symbol:

phpLocal(){
        php -S localhost:"$1" &
        cmd.exe /C start http://localhost:"$1"
}

【讨论】:

    猜你喜欢
    • 2016-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    相关资源
    最近更新 更多