关闭从终端启动的应用程序时关闭终端

关闭从终端启动的应用程序时关闭终端

我有一个相当不寻常的用例,我经常需要从命令行启动一个自定义程序,这是一个独立的可执行文件,名为./Rustlinks包含在 中$HOME/Applications。因为我需要经常打开这个程序,所以我创建了一个别名来快速执行此操作:

alias rustlinks='~/Applications/Rustlinks \ exit'

不幸的是,每次运行该rustlinks命令时,我都必须关闭 的 GUI 窗口Rustlinks和终端窗口。这变得非常棘手,因为这些终端窗口很容易堆积起来。

为了尝试解决这个问题,我编写了一个简单的 bash 脚本,如下所示:

#!/usr/bin/env bash
./Rustlinks
if [ $? -eq 0 ]
then
  killall gnome-terminal
else
  exit
fi

现在,我只需运行bash ~/Applications/rustlinks.sh(此脚本)即可获得所需的功能。不幸的是,这会关闭所有终端窗口,这并不理想。

任何更好的解决方案都将不胜感激。

答案1

未经测试,但你可能想要:

alias rustlinks='gnome-terminal -e ~/Applications/Rustlinks'

好的,试试这个:

alias rustlinks='exec ~/Applications/Rustlinks'

这一个将代替与应用程序一起运行的 shell 进程。当应用程序退出时,该终端窗口/选项卡也应退出(假设您已这样配置 gnone-terminal)

答案2

找到了一个解决方案:

  • 以下命令运行可执行文件,然后退出 shell
  • 在大多数终端上退出 shell 也会结束终端窗口进程,从而关闭窗口
alias rustlinks='~/Applications/Rustlinks && exit'
  • rustlinks然后,一旦应用程序关闭,运行命令就会自动退出终端!

相关内容