使用 firefox 時,對我來說,不開心的點之一便是版本「檢查與更新」。
每次都得要打開 firefox –> 「選單」–> 「說明」–>「關於」。
若有更新,再按更新,…. 等等之類動作。
所以,跟 AI 聊後,弄了個 shell script,如下:
#!/bin/bash
# 定義安裝路徑
FIREFOX_DIR="/usr/local/firefox"
TEMP_DIR="/tmp/firefox_update"
# 1. 取得本機 Firefox 版本(若找不到或未安裝則設為 0.0)
local_ver=$(/usr/local/firefox/firefox --version 2>/dev/null | cut -d' ' -f3)
if [ -z "$local_ver" ]; then
echo "找不到本機 Firefox,將直接安裝..."
local_ver="0.0"
else
echo "本機版本:$local_ver"
fi
# 2. 取得網站最新版本的重新導向網址與版本號
remote_url=$(curl -sIL "https://download.mozilla.org/?product=firefox-beta-latest&os=linux64&lang=zh-TW" | grep -i "^location:" | tail -n1 | tr -d '\r')
remote_ver=$(echo "$remote_url" | sed -E 's/.*releases\/([0-9.]+b[0-9]+).*/\1/')
if [ -z "$remote_ver" ]; then
echo "錯誤:無法取得網站上的版本號碼。"
exit 1
fi
echo "網站版本:$remote_ver"
# 3. 比較版本(使用 sort -V 找出較新者)
newest=$(printf "%s\n%s\n" "$local_ver" "$remote_ver" | sort -V | tail -n1)
# 4. 判斷是否需要下載與更新
if [ "$newest" = "$remote_ver" ] && [ "$local_ver" != "$remote_ver" ]; then
echo "發現新版本 ($remote_ver),開始下載..."
mkdir -p "$TEMP_DIR"
wget -O "$TEMP_DIR/firefoxSetup.tar.bz2" "$remote_url"
echo "正在解壓縮..."
tar -xjf "$TEMP_DIR/firefoxSetup.tar.bz2" -C "$TEMP_DIR"
# 檢查是否正在執行 Firefox,若有則先關閉(選擇性,避免檔案佔用)
if pgrep -x "firefox" > /dev/null; then
echo "偵測到 Firefox 正在執行,正在關閉..."
pkill -x "firefox"
sleep 2
fi
echo "正在覆蓋至 $FIRE_DIR..."
sudo rm -rf "$FIREFOX_DIR"
sudo mv "$TEMP_DIR/firefox" "$FIREFOX_DIR"
# 清理暫存
rm -rf "$TEMP_DIR"
echo "Firefox 已成功更新至 $remote_ver!"
echo "正在重新啟動 Firefox..."
nohup /usr/local/firefox/firefox > /dev/null 2>&1 &
echo "Firefox 已重新啟動。"
else
echo "目前已是最新版本 ($local_ver),無需更新。"
fi
目標是解決少按好幾下滑鼠的不適感。
