You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在bash脚本中实现仅匹配指定URL时才运行对应函数?

需求实现方案

核心思路

通过获取Chromium当前激活标签页的真实URL,和目标地址https://github.com/login做精准匹配,匹配成功才执行自动输入逻辑,否则跳过。

方案一:远程调试接口匹配(推荐,准确率100%)

前置配置

修改你的Chromium启动参数,增加远程调试端口配置(仅本地可访问,无安全风险):

chromium --remote-debugging-port=9222

需要提前安装json解析工具jq:

# Debian/Ubuntu 系
apt install -y jq
# RHEL/CentOS 系
dnf install -y jq

完整脚本代码

#!/bin/bash
# 定义匹配的目标登录页
TARGET_URL="https://github.com/login"

# 拉取当前浏览器所有标签页信息,提取当前激活页面的URL
CURRENT_URL=$(curl -s http://localhost:9222/json | jq -r '.[] | select(.type == "page" and .active == true) | .url')

# 精准匹配URL,匹配成功才执行自动登录逻辑
if [ "$CURRENT_URL" = "$TARGET_URL" ]; then
    DISPLAY=:0.0 xdotool type $WUSER
    DISPLAY=:0.0 xdotool key Tab
    DISPLAY=:0.0 xdotool type $DECPASS
    DISPLAY=:0.0 xdotool key Return
fi

该方案和你提到的"matches": ["https://github.com/login"]规则效果完全一致,仅当URL精准匹配时才触发逻辑。

方案二:窗口标题匹配(无侵入,准确率稍低)

如果不想修改浏览器启动参数,可以通过匹配当前激活窗口的标题实现,GitHub登录页固定标题为Sign in to GitHub · GitHub:

#!/bin/bash
# 目标页面标题关键词
TITLE_KEYWORD="Sign in to GitHub"

# 获取当前激活窗口的标题
CURRENT_TITLE=$(xprop -id $(xdotool getactivewindow) | grep 'WM_NAME' | awk -F '"' '{print $2}')

# 匹配标题关键词
if [[ "$CURRENT_TITLE" == *"$TITLE_KEYWORD"* ]]; then
    DISPLAY=:0.0 xdotool type $WUSER
    DISPLAY=:0.0 xdotool key Tab
    DISPLAY=:0.0 xdotool type $DECPASS
    DISPLAY=:0.0 xdotool key Return
fi

该方案无需修改浏览器配置,但如果有其他页面标题包含对应关键词会出现误触发。

内容的提问来源于stack exchange,提问作者Faiz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 07:54:07