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

如何用Bash实现每隔2秒逐个打开并定时关闭URL?

批量定时打开并关闭URL的Bash脚本解决方案

方案1:逐个打开URL,每个停留2秒后关闭

适合依次展示每个URL、每次屏幕仅保留一个窗口的场景,使用轻量级小众浏览器Midori实现:

#!/bin/bash

# 参数检查
if [ $# -ne 1 ]; then
    echo "用法: $0 <文本文件路径>"
    exit 1
fi

# 文件存在检查
if [ ! -f "$1" ]; then
    echo "错误: 未找到文件 '$1'."
    exit 1
fi

# 循环处理每个URL
while read -r link
do
    # 跳过空行
    [ -z "$link" ] && continue
    
    # 用Midori打开URL并记录进程ID
    midori "$link" &
    PID=$!
    
    # 停留2秒
    sleep 2
    
    # 关闭当前浏览器进程
    kill "$PID" 2>/dev/null
done < "$1"

说明

  • Midori是轻量级开源浏览器,Debian/Ubuntu系可通过sudo apt install midori安装,其他发行版用对应包管理器即可。
  • 可替换midori为其他小众浏览器(如epiphany、qutebrowser),只要该浏览器打开单个窗口会生成独立进程。
  • 2>/dev/null用于忽略进程已自行关闭的错误提示。

方案2:维持固定数量窗口,定时刷新替换

适合同时展示多个URL、每隔2秒新增一个并关闭最早窗口的场景,实现持续刷新效果:

#!/bin/bash

# 参数检查
if [ $# -ne 2 ]; then
    echo "用法: $0 <文本文件路径> <维持窗口数量>"
    exit 1
fi

FILE="$1"
WINDOW_COUNT="$2"

# 文件存在检查
if [ ! -f "$FILE" ]; then
    echo "错误: 未找到文件 '$FILE'."
    exit 1
fi

# 验证窗口数量为正整数
if ! [[ "$WINDOW_COUNT" =~ ^[0-9]+$ ]] || [ "$WINDOW_COUNT" -le 0 ]; then
    echo "错误: 窗口数量必须是正整数."
    exit 1
fi

# 存储进程ID的数组
declare -a PIDS=()

# 循环处理URL(如需重复轮询所有URL,保留外层while true)
while true; do
    while read -r link
    do
        [ -z "$link" ] && continue
        
        # 打开URL并记录进程ID
        midori "$link" &
        PIDS+=("$!")
        
        # 窗口数量超限时,关闭最早打开的窗口
        if [ "${#PIDS[@]}" -gt "$WINDOW_COUNT" ]; then
            OLD_PID=${PIDS[0]}
            kill "$OLD_PID" 2>/dev/null
            # 移除数组中最早的进程ID
            PIDS=("${PIDS[@]:1}")
        fi
        
        # 每隔2秒执行一次
        sleep 2
    done < "$FILE"
    
    # 取消下方注释可实现循环重复加载所有URL
    # echo "完成一轮URL加载,开始下一轮..."
    # sleep 2
done

说明

  • 运行时需指定文本文件路径和要维持的窗口数量,例如./script.sh urls.txt 5会同时保持5个浏览器窗口。
  • 如果使用Chrome/Chromium,需将打开命令改为google-chrome --new-window "$link" &,关闭时用kill -- -$OLD_PID(杀死整个进程组)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 16:34:27