一键启动多个 Chrome 实例并自动清理的 Bash 脚本分享!

目录

[一、📦 脚本功能概览](#一、📦 脚本功能概览)

[二、📜 脚本代码一览](#二、📜 脚本代码一览)

[三、🔍 脚本功能说明](#三、🔍 脚本功能说明)

[(一)✅ 支持批量启动多个 Chrome 实例](#(一)✅ 支持批量启动多个 Chrome 实例)

[(二)✅ 每个实例使用独立用户数据目录](#(二)✅ 每个实例使用独立用户数据目录)

[(三)✅ 启动后自动等待用户关闭](#(三)✅ 启动后自动等待用户关闭)

(四)✅自动清理所有临时数据

[四、🛠️ 最推荐用法:直接添加 alias,随时随地一键运行!](#四、🛠️ 最推荐用法:直接添加 alias,随时随地一键运行!)

[(一)✅ 第一步:保存脚本并赋予执行权限](#(一)✅ 第一步:保存脚本并赋予执行权限)

[(二)✅ 第二步:添加 alias 到 shell 配置](#(二)✅ 第二步:添加 alias 到 shell 配置)

(三)使用案列说明

[1. 打开 1 个实例,默认页面](#1. 打开 1 个实例,默认页面)

[2. 打开 3 个实例,访问指定网址](#2. 打开 3 个实例,访问指定网址)

[3. 打开 5 个实例并打开本地服务](#3. 打开 5 个实例并打开本地服务)

[💡 小贴士:alias 更建议这样取名](#💡 小贴士:alias 更建议这样取名)

[五、🎯 小结](#五、🎯 小结)


干货分享,感谢您的阅读!!!

有时候,我们可能会遇到这样一个需求:快速启动多个 Chrome 浏览器实例,每个打开多个标签页,测试完自动关闭并清理所有痕迹。比如做 Web 自动化测试、刷流量(你懂的😏)、展示多个页面效果对比等等。

今天就给大家分享一个 Bash 脚本,帮你一键完成以上操作!关键是:不脏系统、不留痕、自动清理!

一、📦 脚本功能概览

这个脚本主要完成以下几件事:

  1. 接收一个数字参数,表示要打开几个 Chrome 实例。

  2. 每个实例打开指定网页,如果没指定,默认打开 example.com。

  3. 每个实例使用一个临时用户目录(profile),避免配置冲突。

  4. 等所有 Chrome 实例关闭后,自动清理这些临时目录。

二、📜 脚本代码一览

下面是完整脚本,直接复制保存为 open_chromes.sh,加上执行权限即可使用。

bash 复制代码
#!/bin/bash

# 检查参数
if [ -z "$1" ]; then
  echo "Usage: $0 <count> [url1] [url2] ..."
  echo "       启动 <count> 个 Chrome 实例,每个实例打开指定网页"
  exit 1
fi

COUNT=$1
shift
URLS=("$@")

# 默认 URL
if [ ${#URLS[@]} -eq 0 ]; then
  URLS=("https://zyfcodes.blog.csdn.net/?type=blog")
fi

echo "---------------------------------------------"
echo "🚀 启动 $COUNT 个 Chrome 实例,每个打开以下标签页:"
for url in "${URLS[@]}"; do
  echo "   - $url"
done
echo "---------------------------------------------"

# 存储每个实例的 PID 和 PROFILE 目录
PIDS=()
PROFILE_DIRS=()

for ((i=1; i<=COUNT; i++)); do
  PROFILE_DIR="/tmp/chrome-profile-$RANDOM"
  PROFILE_DIRS+=("$PROFILE_DIR")

  echo "[$i/$COUNT] 启动实例,Profile: $PROFILE_DIR"

  /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome \
    --incognito \
    --no-first-run \
    --no-default-browser-check \
    --user-data-dir="$PROFILE_DIR" \
    "${URLS[@]}" &

  PIDS+=($!)
  sleep 0.2
done

echo "⏳ 等待所有 Chrome 实例关闭..."
for pid in "${PIDS[@]}"; do
  wait "$pid"
done

echo "🧹 所有实例关闭,开始清理临时 profile 目录..."
for dir in "${PROFILE_DIRS[@]}"; do
  rm -rf "$dir"
  echo "   ✅ 删除 $dir"
done

echo "🎉 所有临时目录已清理完成!"

三、🔍 脚本功能说明

(一)✅ 支持批量启动多个 Chrome 实例

脚本接受一个数字参数 count,表示要启动几个独立的 Chrome 实例。例如:

bash 复制代码
./open_chromes.sh 3 https://google.com https://github.com

将启动 3 个实例,每个打开 Google 和 GitHub 两个标签页。

(二)✅ 每个实例使用独立用户数据目录

通过 --user-data-dir=/tmp/chrome-profile-XXXX,让每个实例使用自己的临时配置文件夹,互不影响,也不会污染你平时使用的 Chrome。

而且还加了 --incognito、--no-first-run、--no-default-browser-check 等参数,让实例干净启动、免打扰。

(三)✅ 启动后自动等待用户关闭

脚本会记录每个实例的进程 ID(PID),并在后台等待用户关闭 Chrome。你打开网页、测试完毕、手动关掉窗口后,脚本才会继续执行。

(四)✅自动清理所有临时数据

所有用到的 /tmp/chrome-profile-xxx 文件夹会在最后统一清理,真正做到"来无影、去无踪"。你系统不会留下任何多余缓存!

四、🛠️ 最推荐用法:直接添加 alias,随时随地一键运行!

虽然你可以将脚本放入 ~/bin 目录并配置 $PATH,但我更推荐一种更快、更符合日常使用习惯的方式:直接设置 alias 别名。

你只需两步,就能让这个脚本变成终端里的"魔法命令":

(一)✅ 第一步:保存脚本并赋予执行权限

比如你把脚本保存为 ~/scripts/open_chromes.sh,记得加上执行权限:

bash 复制代码
mkdir -p ~/scripts
mv open_chromes.sh ~/scripts/
chmod +x ~/scripts/open_chromes.sh

(二)✅ 第二步:添加 alias 到 shell 配置

打开你的 shell 配置文件(Zsh 用户就是 .zshrc,Bash 用户是 .bash_profile):

bash 复制代码
nano ~/.zshrc # 或 nano ~/.bash_profile

添加如下 alias(你可以自由修改名字,这里用 zyfoc 表示 open chrome):

bash 复制代码
alias zyfoc="~/scripts/open_chromes.sh"

保存并让配置立即生效:

bash 复制代码
source ~/.zshrc # 或 source ~/.bash_profile

(三)使用案列说明

🚀 从此,你只需要敲一行命令就能执行脚本:

1. 打开 1 个实例,默认页面
bash 复制代码
zyfoc 1
2. 打开 3 个实例,访问指定网址
java 复制代码
zyfoc 3 https://google.com https://github.com
3. 打开 5 个实例并打开本地服务
bash 复制代码
zyfoc 5 http://localhost:3000/login http://localhost:3000/dashboard

💡 小贴士:alias 更建议这样取名

别名 含义 推荐指数
zyfoc open chrome 的缩写 ⭐⭐⭐⭐⭐(简洁)
chromex chrome + 批量执行风格 ⭐⭐⭐⭐
testweb 用于测试网页打开 ⭐⭐⭐
browsex 多窗口浏览扩展工具 ⭐⭐⭐

五、🎯 小结

这个 Bash 脚本实现了:

  • ✔️ 快速启动任意数量 Chrome 实例

  • ✔️ 每个实例独立运行,不干扰主浏览器

  • ✔️ 支持多个标签页

  • ✔️ 自动等待 + 自动清理,使用无痕!

简单几行 Bash,就能解决很多重复操作的烦恼。如果你有类似需求,赶紧拿去试试吧!

相关推荐
卸任11 小时前
Vibe coding工具使用心得
前端·ai编程
brien912 小时前
为什么模型标称 1M,Google Antigravity 聊到 256K 却突然失忆?我们给它做了个原生行内监控圆环
前端
用户22654147129512 小时前
浏览器扩展 + CDP 调试实践:多平台文章同步的五个坑
chrome
修炼的dance12 小时前
录屏关键帧间隔多少合适?六档实测,2秒到10秒小了75.6%
前端
Lank_M12 小时前
关键帧从1秒拉到10秒,录屏小87.3%,摄像头小10.8%
前端
补码缩写12 小时前
用 ffprobe 拆录屏,八成字节在 29 个关键帧上
前端
百思不得小李12 小时前
一个复杂的动态表单是如何实现的
前端·设计模式
陈随易13 小时前
Cmder 停更 17 个月,2.0 支持 Windows Terminal
前端·后端·程序员
风骏时光牛马13 小时前
前沿视界
前端
kyriewen13 小时前
我扫了 814 个依赖,97 个还敢要 Node 10
前端·javascript·程序员