我需要帮助修改脚本以识别 Firefox 和 Firefox(私人浏览)

我需要帮助修改脚本以识别 Firefox 和 Firefox(私人浏览)

我有这个通过键盘快捷键运行的脚本(并切换 Stylus 扩展样式表的开/关***)。它专门用于最大化窗口,因此 xdotool 值不会改变:

#!/bin/bash

xgg="$(xdotool getactivewindow getwindowname)"

if [[ "$xgg" == *" - Mozilla Firefox" ]]
  then
    xdotool mousemove --sync 18 54 click 1 
    sleep 0.2
    xdotool mousemove --sync 134 85 click 1
    sleep 0.2
    xdotool mousemove --sync 1365 85 click 1
    sleep 0.2
    xdotool mousemove --sync 683 384
fi

它检查焦点窗口是否为 Firefox,因为*" - Mozilla Firefox",这是 Firefox 窗口标题的结尾,如果匹配,它会执行后续的 xdotool 命令。

我现在希望即使窗口是 Firefox 的隐私浏览实例也能运行 xdotool 命令。

如果我同时打开了常规 Firefox 窗口和私人浏览窗口,wmctrl -l则会显示以下内容:

$ wmctrl -l
0x0260000b -1    N/A Desktop — Plasma
0x02600016 -1    N/A Plasma
0x03e00018  0 kububb Newest Questions - Ask Ubuntu - Mozilla Firefox
0x03e001cd  0 kububb Newest Questions - Ask Ubuntu - Mozilla Firefox (Private Browsing)
0x05a00006  0    N/A bash: dkb — Konsole
$ 

脚本需要什么正则表达式来识别窗口标题末尾的- Mozilla Firefox和?- Mozilla Firefox (Private Browsing)

***我的地址栏左侧有 Stylus 图标。单击图标一次,会出现一个下拉菜单。第二次单击(在下拉菜单的特定区域)可打开/关闭样式表。

答案1

您可以使用星号 ( *) 通配符。*可以表示任意数量的字符(包括零个,换句话说,零个或多个字符)。因此,if看起来像:

if [[ "$xgg" == *" - Mozilla Firefox"* ]]

或者,由于 Mozilla Firefox 只有两种可能性,即Mozilla FirefoxMozilla Firefox (Private Browsing),因此您可以使用逻辑或来if 更具体地说明。

if [[ "$xgg" = *" - Mozilla Firefox" ]] || [[ "$xgg" = *" - Mozilla Firefox (Private Browsing)" ]]

或者按照DK Bose 的评论

if [[ "$xgg" == *?(" - Mozilla Firefox"|" - Mozilla Firefox (Private Browsing)") ]]

答案2

只需使用一个 glob(挑剔,但==采用 glob 而不是正则表达式),允许在之后使用字符串Firefox

#!/bin/bash

xgg="$(xdotool getactivewindow getwindowname)"
if [[ "$xgg" = *"Mozilla Firefox"* ]]
then
    xdotool mousemove --sync 18 54 click 1 
    sleep 0.2
    xdotool mousemove --sync 134 85 click 1
    sleep 0.2
    xdotool mousemove --sync 1365 85 click 1
    sleep 0.2
    xdotool mousemove --sync 683 384
fi

或者,既然您正在使用[[,那么您可以使用正则表达式匹配:

#!/bin/bash

xgg="$(xdotool getactivewindow getwindowname)"
if [[ "$xgg" =~ "Mozilla Firefox" ]]
then
    xdotool mousemove --sync 18 54 click 1 
    sleep 0.2
    xdotool mousemove --sync 134 85 click 1
    sleep 0.2
    xdotool mousemove --sync 1365 85 click 1
    sleep 0.2
    xdotool mousemove --sync 683 384
fi

相关内容