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

目录

一、📦 脚本功能概览

二、📜 脚本代码一览

三、🔍 脚本功能说明

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

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

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

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

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

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

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

(三)使用案列说明

1. 打开 1 个实例,默认页面

2. 打开 3 个实例,访问指定网址

3. 打开 5 个实例并打开本地服务

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

五、🎯 小结


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

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

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

一、📦 脚本功能概览

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

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

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

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

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

二、📜 脚本代码一览

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

#!/bin/bash# 检查参数
if [ -z "$1" ]; thenecho "Usage: $0 <count> [url1] [url2] ..."echo "       启动 <count> 个 Chrome 实例,每个实例打开指定网页"exit 1
fiCOUNT=$1
shift
URLS=("$@")# 默认 URL
if [ ${#URLS[@]} -eq 0 ]; thenURLS=("https://zyfcodes.blog.csdn.net/?type=blog")
fiecho "---------------------------------------------"
echo "🚀 启动 $COUNT 个 Chrome 实例,每个打开以下标签页:"
for url in "${URLS[@]}"; doecho "   - $url"
done
echo "---------------------------------------------"# 存储每个实例的 PID 和 PROFILE 目录
PIDS=()
PROFILE_DIRS=()for ((i=1; i<=COUNT; i++)); doPROFILE_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
doneecho "⏳ 等待所有 Chrome 实例关闭..."
for pid in "${PIDS[@]}"; dowait "$pid"
doneecho "🧹 所有实例关闭,开始清理临时 profile 目录..."
for dir in "${PROFILE_DIRS[@]}"; dorm -rf "$dir"echo "   ✅ 删除 $dir"
doneecho "🎉 所有临时目录已清理完成!"

三、🔍 脚本功能说明

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

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

./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,记得加上执行权限:

mkdir -p ~/scripts
mv open_chromes.sh ~/scripts/
chmod +x ~/scripts/open_chromes.sh

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

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

nano ~/.zshrc # 或 nano ~/.bash_profile

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

alias zyfoc="~/scripts/open_chromes.sh"

保存并让配置立即生效:

source ~/.zshrc # 或 source ~/.bash_profile

(三)使用案列说明

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

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

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

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

五、🎯 小结

这个 Bash 脚本实现了:

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

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

  • ✔️ 支持多个标签页

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/web/81434.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025.05.26【Wordcloud】词云图绘制技巧

Most basic See what input file is needed to build this basic wordcloud. Text analysis A text analysis by Benjamin Tovarcis for document classification. 文章目录 Most basicText analysis 探索词云图的奥秘什么是词云图&#xff1f;为什么使用词云图&#xff1f;如…

RuoYi前后端分离框架集成UEditorPlus富文本编辑器

一、背景 采用若依框架搭建了一个小型的电子书项目,项目前端、后端、移动端就一人,电子书的章节内容是以富文本内容进行呈现的,产品设计人员直接给了一个第三方收费的富文本编辑器截图放到开发文档中,提了一沓需求点,概况下来就是要做成下图中的样子。作为一个后端开发人…

ETL 工具与数据中台的关系与区别

ETL 工具和数据中台作为数据处理领域的关键概念&#xff0c;虽然存在一定的关联&#xff0c;但二者有着明显的区别。本文将深入剖析 ETL 工具与数据中台之不同。 一、ETL 工具概述 ETL 是数据仓库技术中的核心技术之一&#xff0c;其全称为 Extract&#xff08;抽取&#xff…

Redis(四) - 使用Python操作Redis详解

文章目录 前言一、下载Python插件二、创建项目三、安装 redis 库四、新建python软件包五、键操作六、字符串操作七、列表操作八、集合操作九、哈希表操作十、有序集合操作十一、完整代码1. 完整代码2. 项目下载 前言 本文是基于 Python 操作 Redis 数据库的实战指南&#xff0…

xdvipdfmx:fatal: File ended prematurely. No output PDF file written.

今天忽然遇到&#xff1a;使用xelatex或lualatex编译&#xff0c;一直卡住&#xff0c;不报错&#xff0c;也无法生成PDF&#xff0c;主动停止编译后就报错 xdvipdfmx:fatal: File ended prematurely. No output PDF file written. 然后&#xff0c;之前能正常编译的一些文件…

解锁未来AI:使用DACA模式和Agentic技术提高开发效率

学习Agentic AI:Dapr Agentic Cloud Ascent (DACA)设计模式的应用与演进 背景介绍 近年来,Agentic AI(代理型人工智能)的概念在学术界和产业界掀起了一阵热潮。Agentic AI指的是能够自主感知、决策和行动的智能体系统,它们不仅改变了我们与技术互动的方式,也为行业发展…

Jenkins+Docker+Harbor快速部署Spring Boot项目详解

JenkinsDockerHarbor快速部署Spring Boot项目详解 Jenkins、Docker和Harbor是现代DevOps流程中的核心工具&#xff0c;结合使用可以实现自动化构建、测试和部署。下面我将详细介绍如何搭建这个集成环境。 一、各工具的核心作用 Jenkins 自动化CI/CD工具&#xff0c;负责拉取代…

第12次04 :首页展示用户名

登录后&#xff0c;跳转到首页&#xff0c;首页会展示用户名&#xff1b;未登录时&#xff0c;首页将展示登录与注册的选项。 第一步&#xff1a;index.html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml…

Flask 路由跳转机制:url_for生成动态URL、redirect页面重定向

在 Flask 开发中&#xff0c;url_for() 与 redirect() 是实现路由跳转逻辑的核心工具。 url_for()负责安全、灵活地生成 URL。 redirect()负责发起重定向响应。 1、url_for()&#xff1a;生成URL url_for(endpoint, **values) 是 Flask 提供的 URL 构造工具&#xff0c;可根据…

华为OD机试真题——构成正方形的数量(2025B卷:100分)Java/python/JavaScript/C++/C/GO六种最佳实现

2025 B卷 100分 题型 本文涵盖详细的问题分析、解题思路、代码实现、代码详解、测试用例以及综合分析; 并提供Java、python、JavaScript、C++、C语言、GO六种语言的最佳实现方式! 本文收录于专栏:《2025华为OD真题目录+全流程解析/备考攻略/经验分享》 华为OD机试真题《构成…

FFMPEG-AAC编码

一、流程图 二、代码解释 avcodec_find_encoder: 根据指定的AVCodecID查找注册的编码器。avcodec_alloc_context3: 为AVCodecContext分配内存。()avcodec_open2: 打开编码器。avcodec_send_frame: 将AVFrame⾮压缩数据给编码器。avcodec_receive_packet: 获取到编码后的…

RPC 协议详解、案例分析与应用场景

一、RPC 协议原理详解 RPC 协议的核心目标是让开发者像调用本地函数一样调用远程服务&#xff0c;其实现过程涉及多个关键组件与流程。 &#xff08;一&#xff09;核心组件 客户端&#xff08;Client&#xff09;&#xff1a;发起远程过程调用的一方&#xff0c;它并不关心调…

Docker基础 -- Ubuntu 22.04 AArch64 交叉编译 Docker 镜像构建指南

Ubuntu 22.04 AArch64 交叉编译 Docker 镜像构建指南 作者&#xff1a; &#xff08;填写作者&#xff09; 发布日期&#xff1a; 2025‑05‑26 1 背景与目标 在企业内网&#xff08;需要代理&#xff09;环境下&#xff0c;我们需要一套可靠、可复用的 Ubuntu 22.04 交叉编…

【ISP算法精粹】ISP算法管线的预处理算法有哪些?

1. ISP预处理算法有哪些&#xff1f; 在图像信号处理&#xff08;ISP&#xff09;流程中&#xff0c;预处理阶段主要针对图像传感器&#xff08;如CMOS/CCD&#xff09;输出的原始图像数据&#xff08;通常为拜耳格式的RAW图像&#xff09;进行初步处理&#xff0c;以校正硬件…

华为OD机试真题——字符串加密 (2025B卷:100分)Java/python/JavaScript/C/C++/GO最佳实现

2025 B卷 100分 题型 本专栏内全部题目均提供Java、python、JavaScript、C、C++、GO六种语言的最佳实现方式; 并且每种语言均涵盖详细的问题分析、解题思路、代码实现、代码详解、3个测试用例以及综合分析; 本文收录于专栏:《2025华为OD真题目录+全流程解析+备考攻略+经验分…

视频存储开源方案

项目成熟度 GitHub - ceph/ceph: Ceph is a distributed object, block, and file storage platform GitHub - minio/minio: MinIO is a high-performance, S3 compatible object store, open sourced under GNU AGPLv3 license. GitHub - seaweedfs/seaweedfs: SeaweedFS i…

典型城市工况数据(Drive Cycle)用于车辆仿真

典型城市工况数据&#xff08;Drive Cycle&#xff09;用于车辆仿真 在车辆仿真过程中&#xff0c;使用典型的城市工况数据&#xff08;Drive Cycle&#xff09;是评估车辆性能、能耗和排放的关键步骤。以下是一些常用的典型城市工况数据及其来源&#xff0c;这些数据可以帮助…

深度解析新能源汽车结构与工作原理

一、核心系统架构 新能源汽车主要由三大核心系统构成&#xff1a; 电力驱动系统&#xff1a;包含永磁同步电机、电机控制器&#xff08;MCU&#xff09;及减速器&#xff0c;采用三合一集成设计实现轻量化。永磁同步电机通过电磁感应原理将电能转化为机械能&#xff0c;其效率可…

跳板问题(贪心算法+细节思考)

首先直接看题&#xff1a; 这题直接贪心其实问题不大&#xff1a; 下面先展示我的一个错误代码&#xff1a; # include<iostream> # include<vector> # include<algorithm>using namespace std;int main() {int N,M;cin>>N>>M;vector<vecto…

pgsql 一些用法

要查询PostgreSQL数据库中剩余的磁盘空间&#xff0c;可以使用以下方法&#xff1a; 使用SQL查询函数&#xff1a; 可以通过pg_size_pretty函数来查看数据库的总磁盘使用情况&#xff0c;例如&#xff1a; SELECT pg_size_pretty(pg_database_size(‘your_database_name’)); …