Bash腳本啟動多個Chrome瀏覽器窗口并自動清理的實現(xiàn)過程
有時候,我們可能會遇到這樣一個需求:快速啟動多個 Chrome 瀏覽器實例,每個打開多個標簽頁,測試完自動關(guān)閉并清理所有痕跡。比如做 Web 自動化測試、刷流量(你懂的??)、展示多個頁面效果對比等等。

今天就給大家分享一個 Bash 腳本,幫你一鍵完成以上操作!關(guān)鍵是:不臟系統(tǒng)、不留痕、自動清理!
這個Bash腳本通過簡潔高效的方式解決了啟動多個Chrome實例并自動清理的問題,特別適合Web自動化測試和多窗口展示場景。通過設(shè)置alias,用戶可以瞬間完成操作,無需復(fù)雜的配置。希望這篇補充內(nèi)容能為開發(fā)者和測試人員提供更清晰、更實用的腳本參考!
一、腳本功能概覽
這個腳本主要完成以下幾件事:
接收一個數(shù)字參數(shù),表示要打開幾個 Chrome 實例。
每個實例打開指定網(wǎng)頁,如果沒指定,默認打開 example.com。
每個實例使用一個臨時用戶目錄(profile),避免配置沖突。
等所有 Chrome 實例關(guān)閉后,自動清理這些臨時目錄。
二、腳本代碼一覽
下面是完整腳本,直接復(fù)制保存為 open_chromes.sh,加上執(zhí)行權(quán)限即可使用。
#!/bin/bash
# 檢查參數(shù)
if [ -z "$1" ]; then
echo "Usage: $0 <count> [url1] [url2] ..."
echo " 啟動 <count> 個 Chrome 實例,每個實例打開指定網(wǎng)頁"
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 實例關(guān)閉..."
for pid in "${PIDS[@]}"; do
wait "$pid"
done
echo "?? 所有實例關(guān)閉,開始清理臨時 profile 目錄..."
for dir in "${PROFILE_DIRS[@]}"; do
rm -rf "$dir"
echo " ? 刪除 $dir"
done
echo "?? 所有臨時目錄已清理完成!"
三、腳本功能說明
(一)支持批量啟動多個 Chrome 實例
腳本接受一個數(shù)字參數(shù) count,表示要啟動幾個獨立的 Chrome 實例。腳本默認為批量啟動,count參數(shù)決定了實例數(shù)量,支持1及以上整數(shù)。 啟動時,腳本會創(chuàng)建多個臨時用戶目錄,每個實例獨立運行,互不影響。例如:
./open_chromes.sh 3 https://google.com https://github.com
將啟動 3 個實例,每個打開 Google 和 GitHub 兩個標簽頁。
參數(shù)說明
除了count參數(shù)外,腳本還支持其他自定義選項:
pages:指定每個實例需要打開的頁面數(shù)量,默認為1。
baseUrl:指定所有實例的默認啟動網(wǎng)頁,默認為https://example.com。
profileDir:指定使用臨時用戶目錄,默認為/tmp/chrome-profile-XXXX。
(二)每個實例使用獨立用戶數(shù)據(jù)目錄
通過 --user-data-dir=/tmp/chrome-profile-XXXX,讓每個實例使用自己的臨時配置文件夾,互不影響,也不會污染你平時使用的 Chrome。
而且還加了 --incognito、--no-first-run、--no-default-browser-check 等參數(shù),讓實例干凈啟動、免打擾。
(三)啟動后自動等待用戶關(guān)閉
腳本會記錄每個實例的進程 ID(PID),并在后臺等待用戶關(guān)閉 Chrome。你打開網(wǎng)頁、測試完畢、手動關(guān)掉窗口后,腳本才會繼續(xù)執(zhí)行。
(四)自動清理所有臨時數(shù)據(jù)
所有用到的 /tmp/chrome-profile-xxx 文件夾會在最后統(tǒng)一清理,真正做到“來無影、去無蹤”。你系統(tǒng)不會留下任何多余緩存!
四、最推薦用法:直接添加alias,隨時隨地一鍵運行!
雖然你可以將腳本放入 ~/bin 目錄并配置 $PATH,但我更推薦一種更快、更符合日常使用習(xí)慣的方式:直接設(shè)置 alias 別名。
你只需兩步,就能讓這個腳本變成終端里的“魔法命令”:
(一)第一步:保存腳本并賦予執(zhí)行權(quán)限
比如你把腳本保存為 ~/scripts/open_chromes.sh,記得加上執(zhí)行權(quán)限:
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
(三)使用案列說明
?? 從此,你只需要敲一行命令就能執(zhí)行腳本:
1. 打開 1 個實例,默認頁面
zyfoc 1
2. 打開 3 個實例,訪問指定網(wǎng)址
zyfoc 3 https://google.com https://github.com
3. 打開 5 個實例并打開本地服務(wù)
zyfoc 5 http://localhost:3000/login http://localhost:3000/dashboard
?? 小貼士:alias 更建議這樣取名
| 別名 | 含義 | 推薦指數(shù) |
|---|---|---|
zyfoc | open chrome 的縮寫 | ?????(簡潔) |
chromex | chrome + 批量執(zhí)行風(fēng)格 | ???? |
testweb | 用于測試網(wǎng)頁打開 | ??? |
browsex | 多窗口瀏覽擴展工具 | ??? |
五、注意事項
腳本依賴性
腳本依賴google-chrome和headless-chrome等工具,確保系統(tǒng)已安裝相關(guān)版本。 如果腳本無法運行,檢查--user-data-dir是否已正確配置,避免覆蓋重要數(shù)據(jù)。
環(huán)境隔離
每個實例使用獨立的/tmp/chrome-profile-XXXX目錄,避免數(shù)據(jù)沖突。 啟動時,腳本會關(guān)閉所有已啟動實例,確保運行穩(wěn)定性。
性能優(yōu)化
腳本通過--incognito、--no-first-run等參數(shù),確保啟動快速且無廣告干擾。 禁用--no-default-browser-check可提升安全性,避免誤操作風(fēng)險。
腳本穩(wěn)定性
腳本已經(jīng)過多次測試,支持高并發(fā)環(huán)境,但建議在測試環(huán)境中使用。 由于腳本完全在/tmp目錄下運行,不會干擾用戶數(shù)據(jù)。
六、小結(jié)
這個 Bash 腳本實現(xiàn)了:
?? 快速啟動任意數(shù)量 Chrome 實例
?? 每個實例獨立運行,不干擾主瀏覽器
?? 支持多個標簽頁
?? 自動等待 + 自動清理,使用無痕!
簡單幾行 Bash,就能解決很多重復(fù)操作的煩惱。如果你有類似需求,趕緊拿去試試吧!
到此這篇關(guān)于Bash腳本啟動多個Chrome實例并自動清理的實現(xiàn)過程的文章就介紹到這了,更多相關(guān)Bash腳本啟動多個Chrome內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
getcwd cannot access parent directories錯誤解決方法
這篇文章主要介紹了getcwd cannot access parent directories錯誤解決方法,在Linux下執(zhí)行命令時有時會無意中遇到這個錯誤,這只是一個意外錯誤,解決方法很簡單,需要的朋友可以參考下2015-01-01
Shell中printf和test命令的實際應(yīng)用詳解
本文主要介紹了Shell中printf和test命令的實際應(yīng)用詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-09-09
Shell腳本實現(xiàn)關(guān)閉多余的tty終端
這篇文章主要介紹了Shell腳本實現(xiàn)關(guān)閉多余的tty終端,本文腳本適用centos6系統(tǒng),請根據(jù)自己的服務(wù)器系統(tǒng)情況選擇使用,需要的朋友可以參考下2014-12-12
shell腳本中執(zhí)行時提示“沒有那個文件或目錄”的解決辦法
故障現(xiàn)象:在終端直接cd /var正常,在shell腳本中執(zhí)行則報錯。原因是腳本是在windows平臺下寫的,換行符與linux不同,造成腳本不能正確執(zhí)行2014-04-04

