2017-09-07 53 views
0

我希望編寫一個bash腳本,以便它啓動Symfony內置的Web Server,因此可以啓動Firefox。以下簡單的腳本失敗了,因爲 - 我不知道如何用正確的術語來描述它 - shell由第一個任務忙碌。我想這很簡單,但我是新手。謝謝。bash腳本,如何啓動firefox

#!/bin/bash 

cd /var/www/mySymfonyProj 
php bin/console server:run localhost:8080 
/usr/bin/firefox http://localhost:8080 
+0

@ hnefati。是的,完美!謝謝。你碰巧知道關於'&','wait'和相關背景信息的基本的,但是寫得很好的教程嗎? – mario

回答

1

(爲了「解決」問題而移動評論以回答)。

在腳本的第4行之後添加一個&以在後臺運行該進程 - shell將啓動該進程並移至下一行(但會等待第5行的命令完成)。

在腳本結尾處,如果需要,您可能需要調用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延遲,直到它們返回爲止 - 這通常很有用。