我希望编写一个bash脚本,以便启动Symfony内置Web服务器,因此启动Firefox。以下简单易用的脚本失败,因为 - 我不确定如何用正确的术语描述它 - shell在第一个任务中忙碌。我想这很简单,但我是新手。感谢。
#!/bin/bash
cd /var/www/mySymfonyProj
php bin/console server:run localhost:8080
/usr/bin/firefox http://localhost:8080
答案 0 :(得分:1)
(移动评论以回答"解决"问题)。
在脚本的第4行之后添加&
以在后台运行该进程 - shell将启动该进程,然后转到下一行(但将等待第5行' s命令完成)。
在脚本结束时,如果需要,您可能需要致电wait
等待服务器终止。
#!/bin/bash
cd /var/www/mySymfonyProj
php bin/console server:run localhost:8080 &
/usr/bin/firefox http://localhost:8080
wait
有关工作控制的更多信息,请查看this source。它并没有涵盖所有有用的东西,但它涵盖了相当多的数量。
我提到$!
返回刚刚执行的进程的PID,因此您可以跟踪各种后台任务的PID,然后使用wait
延迟直到它们被执行。我回来了 - 这通常很有用。