Files
curl 列印它的 pid 然後在後台執行
我通過一個簡單的
curl
請求體驗了一些新的東西。該命令是 curl 的簡單呼叫,例如:
curl http://example.com/endpoint/?arg1=val1&arg2=val2
該呼叫應該返回一個 500+ MB 的 XML 文件(準備好後,我將
-O
它保存到一個文件中),但沒有什麼奇怪的,真的。奇怪的是 curl 只是列印它的 pid 並進入後台:
[1] 31562
過了一會兒,遠端文件開始出現在控制台中,並且在後台,我無法使用
Ctrl+C
.我從來沒有經歷過這樣的事情。如果我嘗試下載 1.9 GB 的文件:
curl -O https://download.microsoft.com/download/0/A/F/0AFB5316-3062-494A-AB78-7FB0D4461357/7601.17514.101119-1850_Update_Sp_Wave1-GRMSP1.1_DVD.iso
它工作正常!
任何的想法?
來自正常下載的標題:
curl -v -s https://download.microsoft.com/download/0/A/F/0AFB5316-3062-494A-AB78-7FB0D4461357/7601.17514.101119-1850_Update_Sp_Wave1-GRMSP1.1_DVD.iso 1> /dev/null * Trying 92.123.112.141:443... * TCP_NODELAY set * Connected to download.microsoft.com (92.123.112.141) port 443 (#0) * ALPN, offering h2 * ALPN, offering http/1.1 * successfully set certificate verify locations: * CAfile: none CApath: /etc/ssl/certs ... more HTTPS stuff ... } [5 bytes data] > GET /download/0/A/F/0AFB5316-3062-494A-AB78-7FB0D4461357/7601.17514.101119-1850_Update_Sp_Wave1-GRMSP1.1_DVD.iso HTTP/1.1 > Host: download.microsoft.com > User-Agent: curl/7.65.3 > Accept: */* > { [5 bytes data] * Mark bundle as not supporting multiuse < HTTP/1.1 200 OK < Content-Type: application/octet-stream < Accept-Ranges: bytes < Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 < x-ms-blob-content-md5: mw6jWIuMir1+rZG9/mzj+A== < Last-Modified: Sat, 13 Oct 2018 00:34:54 GMT < ETag: "0x8D630A3B1CF6138" < Content-Length: 2048196608 < Date: Mon, 10 Feb 2020 21:11:55 GMT < Connection: keep-alive < { [16038 bytes data] ^C
我的電話:
* Trying 192.168.0.200:80... * TCP_NODELAY set * Connected to example.com port 80 (#0) > GET /endpoint/?arg1=val1&arg2=val2 HTTP/1.1 > Host: example.com > User-Agent: curl/7.65.3 > Accept: */* > ^C
該 URL 包含一個
&
,這意味著您的命令將啟動curl http://example.com/endpoint/?arg1=val1
在後台,然後將 shell 變數設置
arg2
為 valueval2
,因為這就是當 shell 解析該行時 URL 的下一位的含義。在 URL 周圍使用引號:
curl 'http://example.com/endpoint/?arg1=val1&arg2=val2'