如何确保从 Linux 命令行关闭正确的 Chromium 窗口?

如何确保从 Linux 命令行关闭正确的 Chromium 窗口?

我正在编写一个小型 bash 脚本,它可以打开几个应用程序(其中包括几个 chrome 窗口),等待输入,并在输入正确后再次关闭所有打开的应用程序。

为了终止应用程序,我发现了两种不同的方法:使用kill $PID 或使用wmctrl -c <WIN>

在我的情况下,有多个 chrome 窗口打开(不仅仅是脚本启动的窗口)。chrome 的窗口标题会随着访问的 URL 而变化,因此在我看来使用wmctrl -c没有什么帮助。此外,如果另一个窗口(例如 Firefox 实例)有类似的窗口标题,它也会被关闭。

这让我想到了kill命令。但我不知道如何识别我想要终止的 Chrome 窗口的 PID。

我尝试了这个:

pid=$(ps | grep chromium | cut -d " " -f1 | head -n1)
if [ -n "$pid" ]
    then
        echo "...Closing Chromium"
        kill -15 $pid
    else
        echo "...Chromium not found"
fi

但它会关闭所有 Chromium 窗口。

知道如何识别我想要终止的 chrome 窗口吗?

答案1

尝试一下这个项目:http://chromix.smblott.org/

你应该能够运行这样的程序:

chromix with https://www.facebook.com/ close

答案2

bash 手册说:

       $!      Expands to the process ID of the most recently executed background (asynchronous) command.

因此,在启动 chromium 进程后,直接存储所有所需的 PID。可能像这样:

chromium & job1=$!
echo job1=$job1
#...
kill $job1

bash 中也有用于 PID 列表的数组......

相关内容