我想從最新版本下載兩個(.bin 和 .zip)二進制檔案。
我嘗試使用以下命令
curl -s https://github.com/Atmosphere-NX/Atmosphere/releases/latest | grep "browser_download_url.*zip" | cut -d : -f 2,3 | tr -d "\" | wget -qi -
但什么也沒發生,輸出是SYSTEM_WGETRC = c:/progra~1/wget/etc/wgetrc
我愿意使用任何其他(wget、ecurl 等)命令。
uj5u.com熱心網友回復:
您可以使用GitHub CLI,特別是release download命令:
gh release download --repo Atmosphere-NX/Atmosphere --pattern '*.bin'
gh release download --repo Atmosphere-NX/Atmosphere --archive zip
如果不指定發布標簽,該命令默認為最新版本。
uj5u.com熱心網友回復:
它是否試圖從 HTML 頁面中提取下載鏈接?這很容易出錯,并且可能隨時中斷。
對于此類操作,請先檢查它們是否提供 API。
他們這樣做:https ://docs.github.com/en/rest/reference/releases#get-the-latest-release
您可以撰寫類似(偽代碼)的內容:
curl \
-H "Accept: application/vnd.github.v3 json" \
https://api.github.com/repos/Atmosphere-NX/Atmosphere/releases/latest \
| jq .assets[0].browser_download_url \
| xargs wget -qi -
就像評論中建議的那樣,單獨測驗每個命令(管道分隔)。
uj5u.com熱心網友回復:
只需在 URL 上運行 curl 即可:
curl https://github.com/Atmosphere-NX/Atmosphere/releases/latest
<html><body>You are being <a href="https://github.com/Atmosphere-NX/Atmosphere/releases/tag/1.2.6">redirected</a>.</body>
所以,你很容易直接看出有什么不對勁。檢查 curl 幫助,您可以找到以下選項和命令來確定您需要什么:
curl --help | grep redirect
-L, --location Follow redirects
--max-redirs <num> Maximum number of redirects allowed
--proto-redir <protocols> Enable/disable PROTOCOLS on redirect
--stderr Where to redirect stderr
第一條線索redirect在回應中,然后我們在幫助部分看到有一個標志來處理它。
使用 th-L命令運行它會給出預期的輸出。然而,將它傳遞grep "browser_download_url.*zip"給你什么也沒有。然后,您進行調查以查看正確的匹配是什么。但是,讓我們嘗試用 zip 計算僅 html 鏈接,看看會發生什么。
curl -sL https://github.com/Atmosphere-NX/Atmosphere/releases/latest | grep "href=.*zip"
<a href="/Atmosphere-NX/Atmosphere/releases/download/1.2.6/atmosphere-1.2.6-master-173d5c2d3 hbl-2.4.1 hbmenu-3.5.0.zip" rel="nofollow" data-skip-pjax>
<a href="/Atmosphere-NX/Atmosphere/archive/refs/tags/1.2.6.zip" rel="nofollow" data-skip-pjax>
從那里您可能可以找到構建命令所需的內容。如您所見,鏈接與此方法是相對的,因此您仍然必須提供基本網址wget(或curl等效網址)才能最終下載您所追求的內容。
這更多的是讓您進行故障排除的回復。你已經有了其他答案來實際做你想做的事。但如果您無法安裝建議的工具,您可能會執行以下操作:
curl -sL https://github.com/Atmosphere-NX/Atmosphere/releases/latest | awk '/releases\/download/ && done != 1 { sub(/.*href="/, "https://github.com"); sub(/".*/, ""); print; done = 1 }' | xargs curl -LsO
不建議這是一個好方法,只是一種方法。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/449816.html
