Shell wait命令不等待类似的进程已经运行

时间:2018-03-03 23:23:32

标签: bash shell wait background-process linuxmint

我是Linux和shell脚本的新手,所以为了更好地了解如何在后台运行多个进程,我一直在运行一些测试。我写了以下脚本:

#!/bin/bash
firefox &
firefox &
firefox &
wait
echo "done"

我在没有开启Firefox的情况下运行它,它完成了我的预期:它打开了三个Firefox窗口,只打印了#34;完成了#34;当我关闭它们时。

然而,后来我试图在我已经运行了一个Firefox窗口之后执行该脚本并且发生了这样的事情:它确实打开了三个新窗口,但它打印出来了#34;已完成"马上,没有等我关闭其中任何一个。

我曾预料到它要么像最初那样表现,要么等我关闭所有四个浏览器窗口(它开始的三个窗口+我单独启动的那个窗口)。

为了让它更加混乱,每个程序似乎都不会发生这种情况。它发生在LibreOfficeCalc和xed上,但没有用gnome-calculator。它似乎并不关心不同的程序已经在后台运行。

是什么解释了这种行为?

如何编写一个在后台启动多个进程的脚本,而不必担心可能已经运行的其他进程的干扰?

如果相关:我使用Linux Mint 18.3。

0 个答案:

没有答案