curl - 通过 xargs 调用时使用 curl 下载文件失败
问题描述
我正在使用 curl 从Artifactory下载文件。我在使用MSYS2的 Windows 10 上。
curl --version
curl 7.68.0 (x86_64-pc-msys) libcurl/7.68.0 OpenSSL/1.1.1d zlib/1.2.11 brotli/1.0.7 libidn2/2.3.0 libpsl/0.21.0 (+libidn2/2.2.0) libssh2/1.9.0 nghttp2/1.40.0
Release-Date: 2020-01-08
Protocols: dict file ftp ftps gopher http https imap imaps pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp
Features: AsynchDNS brotli Debug GSS-API HTTP2 HTTPS-proxy IDN IPv6 Kerberos Largefile libz Metalink NTLM NTLM_WB PSL SPNEGO SSL TLS-SRP TrackMemory UnixSockets
xargs --version
xargs (GNU findutils) 4.7.0
...
which xargs
xargs is an external : C:\msys64\usr\bin\xargs.exe
这是我的命令:
curl "http://artifactory.xxx.xxx.com:8080/artifactory/api/storage/generic-tools/xxx-xxx/?lastModified" | jq .uri | xargs curl
curl 下载 json 文件,jq提取包含库信息的 json 文件的 url。然而,第二个 curl 调用失败:
curl: (3) URL 使用错误/非法格式或缺少 URL
更改 xargs 命令以xargs echo curl
提供预期的输出。在命令行上运行此调试输出时,会下载正确的文件而不会出现任何错误。
我还可以创建一个可以下载 json 文件的配置文件:
echo.|set /P =URL = > latest.txt
curl ... | jq .uri >> latest.txt
curl --config latest.txt
为什么管道 xargs 命令不起作用,但命令行命令以及配置文件选项工作正常?
解决方案
推荐阅读
- reactjs - React 类组件转换为功能组件(Antdesign)
- angular - ngrx EntityState.ids.includes() 需要类型为 never 的参数
- javascript - 使用 React 提交后要清除的输入表单
- c# - C#、EF Core 和 Scaffold-DbContext,如何不为数据库中的默认值列传递 null?
- flutter - 如何解决意外的空值
- python - 在 python 中从 postgresql 获取数据的更快方法
- http - Google_Drive_API_comments_error
- android - 如何在 Build.gradle 中执行 For 循环
- sum - pine 脚本 sum 函数只返回 float 我需要整数
- javascript - 根据 if 语句更改 API 数据