这一半是“这对我有用”,一半是“业余项目”——我想知道是否可以通过发送命令来gnome-terminal
退出程序的所有实例而不使用killall
。
本质上,我想编写一个脚本,将其放入我的 中$PATH
,它会尝试退出所有打开的终端窗口,就像每个窗口上的关闭按钮都被单击一样,而不是终止。原因是我有一个糟糕的习惯,即同时打开许多终端窗口,而逐个浏览并退出它们很麻烦。只需输入exeunt
(因为让我们面对现实,没有比“退出所有”更好的命令名称了)并让它们全部退出对我来说会更好。但是,我不想意外关闭仍在终端内运行的任何程序 - 我仍然希望看到任何“此终端中仍有进程在运行”提示,因此该命令是killall gnome-terminal
不可能的。
我认为最理想的做法是使用命令行/bash 等同于右键单击 Dash 图标并按“退出”。这可能是一个略显不合常规的要求,但我很想知道这是否可行。
答案1
尽管它的名称是 ,killall
(和kill
)会SIGTERM
向所有同名进程发送信号,但您也可以个性化使用开关发送的信号-s
。因此,killall gnome-terminal
您可以使用而不是 使用killall -s {signal} gnome-terminal
。
我还没弄清楚什么信号可以解释为点击关闭按钮但我的猜测是,这是一个 GUI 钩子触发了这种行为。在 gnome2 中,任务列表中有一个“全部关闭”选项,但在 gnome3 中似乎没有这个选项。
在对 U&L 进行了长时间的讨论之后
在...的帮助下空间光度测量WHO给了我灵感,您可以使用 在 gnome-terminal 的多个实例上模拟alt+组合键。您必须确保已使用以下方法安装:F4xdotool search --name terminal key --window %@ alt+F4
xdotool
sudo apt-get install xdotool
但是,让我详细解释一下:
search
搜索所有具有确定特征的窗口。--name
开关将查找标题栏上具有内容的窗口。key
告诉xdotool
我们要使用键盘命令。--window
告诉对命令使用确定的 ID key
,如果未设置,它将%1
从堆栈中使用。%@
意味着使用所有 ID 堆栈。alt+F4
告诉发送的组合键。
更多信息: