我想编写一段 bash 脚本,打开一个 gnome-terminal 选项卡并在其中执行一些命令,执行完成后终端将关闭,我想让 bash 识别这个终端是关闭的还是仍然打开的,因为如果终端已关闭,我将执行一些操作,如果终端仍打开,我将让我的脚本等待
有人可以帮忙吗?
答案1
您可以运行gnome-terminal
禁用工厂模式。这将阻止它启动连接到现有终端的终端,以便命令不会立即返回:
gnome-terminal --disable-factory
echo Done. # Will only run after the terminal opened above has been closed
--disable-factory
Do not register with the activation name server, do not re-
use an active terminal.
大多数应用程序在运行时都会启动一个独立于任何先前运行的进程的新进程。某些应用程序(如 Firefox、GNOME Terminal 等)在运行时不会打开一个全新的进程。它们会启动一个与现有进程绑定的会话。因此,如果您打开了 Firefox 窗口,并且运行:
firefox
在终端中,它将打开一个连接到现有进程的新窗口并立即返回。在 GNOME 终端的情况下,您可以使用上述选项禁用此行为。使用--disable-factory
,打开的新窗口与此命令绑定,因此命令会等到窗口关闭。