{"id":4177,"date":"2026-10-10T16:39:41","date_gmt":"2026-10-10T08:39:41","guid":{"rendered":"https:\/\/yowlab.idv.tw\/wordpress\/?p=4177"},"modified":"2026-10-10T16:39:41","modified_gmt":"2026-10-10T08:39:41","slug":"%e7%94%a8%e5%91%bd%e4%bb%a4%e4%be%86%e6%89%8b%e5%8b%95-%e8%87%aa%e5%8b%95%e6%9b%b4%e6%96%b0-firefox","status":"publish","type":"post","link":"https:\/\/yowlab.idv.tw\/wordpress\/?p=4177","title":{"rendered":"\u7528\u547d\u4ee4\u4f86\u624b\u52d5\/\u81ea\u52d5\u66f4\u65b0 firefox"},"content":{"rendered":"<p>\u4f7f\u7528 firefox \u6642\uff0c\u5c0d\u6211\u4f86\u8aaa\uff0c\u4e0d\u958b\u5fc3\u7684\u9ede\u4e4b\u4e00\u4fbf\u662f\u7248\u672c\u300c\u6aa2\u67e5\u8207\u66f4\u65b0\u300d\u3002<\/p>\n<p>\u6bcf\u6b21\u90fd\u5f97\u8981\u6253\u958b firefox &#8211;&gt; \u300c\u9078\u55ae\u300d&#8211;&gt; \u300c\u8aaa\u660e\u300d&#8211;&gt;\u300c\u95dc\u65bc\u300d\u3002<br \/>\n\u82e5\u6709\u66f4\u65b0\uff0c\u518d\u6309\u66f4\u65b0\uff0c&#8230;. \u7b49\u7b49\u4e4b\u985e\u52d5\u4f5c\u3002<\/p>\n<p>\u96d6\u7136\u7c21\u55ae\uff0c\u4f46\u6211\u89ba\u5f97\u300c\u7169\u300d\u8207\u300c\u5c0f\u963f\u96dc\u300d\u3002<br \/>\n<a href=\"https:\/\/yowlab.idv.tw\/wordpress\/wp-content\/uploads\/2026\/10\/Screenshot_20261010_162920.png\"><img decoding=\"async\" src=\"https:\/\/yowlab.idv.tw\/wordpress\/wp-content\/uploads\/2026\/10\/Screenshot_20261010_162920-1024x589.png\" alt=\"\" \/><\/a><\/p>\n<p>\u6240\u4ee5\uff0c\u8ddf AI \u804a\u5f8c\uff0c\u5f04\u4e86\u500b shell script\uff0c\u5982\u4e0b\uff1a<\/p>\n<pre data-enlighter-language=\"shell\" class=\"EnlighterJSRAW\">\r\n#!\/bin\/bash\r\n\r\n# \u5b9a\u7fa9\u5b89\u88dd\u8def\u5f91\r\nFIREFOX_DIR=&quot;\/usr\/local\/firefox&quot;\r\nTEMP_DIR=&quot;\/tmp\/firefox_update&quot;\r\n\r\n# 1. \u53d6\u5f97\u672c\u6a5f Firefox \u7248\u672c\uff08\u82e5\u627e\u4e0d\u5230\u6216\u672a\u5b89\u88dd\u5247\u8a2d\u70ba 0.0\uff09\r\nlocal_ver=$(\/usr\/local\/firefox\/firefox --version 2&gt;\/dev\/null | cut -d&#039; &#039; -f3)\r\nif [ -z &quot;$local_ver&quot; ]; then\r\n    echo &quot;\u627e\u4e0d\u5230\u672c\u6a5f Firefox\uff0c\u5c07\u76f4\u63a5\u5b89\u88dd...&quot;\r\n    local_ver=&quot;0.0&quot;\r\nelse\r\n    echo &quot;\u672c\u6a5f\u7248\u672c\uff1a$local_ver&quot;\r\nfi\r\n\r\n# 2. \u53d6\u5f97\u7db2\u7ad9\u6700\u65b0\u7248\u672c\u7684\u91cd\u65b0\u5c0e\u5411\u7db2\u5740\u8207\u7248\u672c\u865f\r\nremote_url=$(curl -sIL &quot;https:\/\/download.mozilla.org\/?product=firefox-beta-latest&amp;os=linux64&amp;lang=zh-TW&quot; | grep -i &quot;^location:&quot; | tail -n1 | tr -d &#039;\\r&#039;)\r\nremote_ver=$(echo &quot;$remote_url&quot; | sed -E &#039;s\/.*releases\\\/([0-9.]+b[0-9]+).*\/\\1\/&#039;)\r\n\r\nif [ -z &quot;$remote_ver&quot; ]; then\r\n    echo &quot;\u932f\u8aa4\uff1a\u7121\u6cd5\u53d6\u5f97\u7db2\u7ad9\u4e0a\u7684\u7248\u672c\u865f\u78bc\u3002&quot;\r\n    exit 1\r\nfi\r\necho &quot;\u7db2\u7ad9\u7248\u672c\uff1a$remote_ver&quot;\r\n\r\n# 3. \u6bd4\u8f03\u7248\u672c\uff08\u4f7f\u7528 sort -V \u627e\u51fa\u8f03\u65b0\u8005\uff09\r\nnewest=$(printf &quot;%s\\n%s\\n&quot; &quot;$local_ver&quot; &quot;$remote_ver&quot; | sort -V | tail -n1)\r\n\r\n# 4. \u5224\u65b7\u662f\u5426\u9700\u8981\u4e0b\u8f09\u8207\u66f4\u65b0\r\nif [ &quot;$newest&quot; = &quot;$remote_ver&quot; ] &amp;&amp; [ &quot;$local_ver&quot; != &quot;$remote_ver&quot; ]; then\r\n    echo &quot;\u767c\u73fe\u65b0\u7248\u672c ($remote_ver)\uff0c\u958b\u59cb\u4e0b\u8f09...&quot;\r\n    mkdir -p &quot;$TEMP_DIR&quot;\r\n    wget -O &quot;$TEMP_DIR\/firefoxSetup.tar.bz2&quot; &quot;$remote_url&quot;\r\n\r\n    echo &quot;\u6b63\u5728\u89e3\u58d3\u7e2e...&quot;\r\n    tar -xjf &quot;$TEMP_DIR\/firefoxSetup.tar.bz2&quot; -C &quot;$TEMP_DIR&quot;\r\n\r\n    # \u6aa2\u67e5\u662f\u5426\u6b63\u5728\u57f7\u884c Firefox\uff0c\u82e5\u6709\u5247\u5148\u95dc\u9589\uff08\u9078\u64c7\u6027\uff0c\u907f\u514d\u6a94\u6848\u4f54\u7528\uff09\r\n    if pgrep -x &quot;firefox&quot; &gt; \/dev\/null; then\r\n        echo &quot;\u5075\u6e2c\u5230 Firefox \u6b63\u5728\u57f7\u884c\uff0c\u6b63\u5728\u95dc\u9589...&quot;\r\n        pkill -x &quot;firefox&quot;\r\n        sleep 2\r\n    fi\r\n\r\n    echo &quot;\u6b63\u5728\u8986\u84cb\u81f3 $FIRE_DIR...&quot;\r\n    sudo rm -rf &quot;$FIREFOX_DIR&quot;\r\n    sudo mv &quot;$TEMP_DIR\/firefox&quot; &quot;$FIREFOX_DIR&quot;\r\n\r\n    # \u6e05\u7406\u66ab\u5b58\r\n    rm -rf &quot;$TEMP_DIR&quot;\r\n    echo &quot;Firefox \u5df2\u6210\u529f\u66f4\u65b0\u81f3 $remote_ver\uff01&quot;\r\n\r\n    echo &quot;\u6b63\u5728\u91cd\u65b0\u555f\u52d5 Firefox...&quot;\r\n    nohup \/usr\/local\/firefox\/firefox &gt; \/dev\/null 2&gt;&amp;1 &amp;\r\n    echo &quot;Firefox \u5df2\u91cd\u65b0\u555f\u52d5\u3002&quot;\r\nelse\r\n    echo &quot;\u76ee\u524d\u5df2\u662f\u6700\u65b0\u7248\u672c ($local_ver)\uff0c\u7121\u9700\u66f4\u65b0\u3002&quot;\r\nfi\r\n\r\n<\/pre>\n<p>\u76ee\u6a19\u662f\u89e3\u6c7a\u5c11\u6309\u597d\u5e7e\u4e0b\u6ed1\u9f20\u7684\u4e0d\u9069\u611f\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u4f7f\u7528 firefox \u6642\uff0c\u5c0d\u6211\u4f86\u8aaa\uff0c\u4e0d\u958b\u5fc3\u7684\u9ede\u4e4b\u4e00\u4fbf\u662f\u7248\u672c\u300c\u6aa2\u67e5\u8207\u66f4\u65b0\u300d\u3002 \u6bcf\u6b21\u90fd <a class=\"more-link\" href=\"https:\/\/yowlab.idv.tw\/wordpress\/?p=4177\">Continue reading <span class=\"screen-reader-text\">  \u7528\u547d\u4ee4\u4f86\u624b\u52d5\/\u81ea\u52d5\u66f4\u65b0 firefox<\/span><span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":["post-4177","post","type-post","status-publish","format-standard","hentry","category-3"],"_links":{"self":[{"href":"https:\/\/yowlab.idv.tw\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/4177","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/yowlab.idv.tw\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/yowlab.idv.tw\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/yowlab.idv.tw\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/yowlab.idv.tw\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=4177"}],"version-history":[{"count":3,"href":"https:\/\/yowlab.idv.tw\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/4177\/revisions"}],"predecessor-version":[{"id":4181,"href":"https:\/\/yowlab.idv.tw\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/4177\/revisions\/4181"}],"wp:attachment":[{"href":"https:\/\/yowlab.idv.tw\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4177"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/yowlab.idv.tw\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=4177"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/yowlab.idv.tw\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=4177"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}