小编and*_*724的帖子

获取linux中打开的应用程序窗口的数量

我想检测由窗口管理器管理的特定应用程序的实例数量.目前,我有这个:

#!/bin/bash
# wmctrl required

pids=$(pidof $1)
IFS=' ' read -a pid_arr <<< "$pids"
matches=0
for pid in "${pid_arr[@]}"
do
    matching_lines=$(wmctrl -l -p | egrep -c "^.+\b.+\b$pid\b")
    matches=$((matches + $matching_lines))
done
echo $matches
Run Code Online (Sandbox Code Playgroud)

假设我有三次打开firefox并且firefox作为参数传递,如果没有打开"子窗口"(例如首选项窗口),该函数将只返回正确的数字.否则,该函数也将计算这些窗口.

我想获得没有"子窗口"的窗口数量.

PS:做了一些改变.要计算没有对话窗口的窗口数,这是我目前的解决方案:

#!/bin/bash

pids=$(pidof $1)
IFS=' ' read -r -a pid_arr <<< "$pids"
matches=0
for pid in "${pid_arr[@]}"
do
    ids=$(wmctrl -l -p | awk '$3=='$pid'{printf $1" "}')
    IFS=' ' read -r -a id_arr <<< "$ids"
    for id in "${id_arr[@]}"
    do
        if ! xprop -id …
Run Code Online (Sandbox Code Playgroud)

linux x11 bash

8
推荐指数
1
解决办法
697
查看次数

标签 统计

bash ×1

linux ×1

x11 ×1