curl 下载地址中有特殊字符解决方案

curl 下载地址中有特殊字符解决方案

使用 curl 下载 地址中带有 特殊字符的时候 比如下面这个地址。实际访问地址不正确,参数丢失问题

curl -o kspf.jpeg https://upload-images.jianshu.io/upload_images/6572036-bb31039692112e40.png?a=1&b=2&c=3

上面这个 url 实际上在服务端接受的参数只有 a = 1 ,造成在服务器端接收的时候经常出现数据丢失的情况

curl -o kspf.jpeg https://upload-images.jianshu.io/upload_images/6572036-bb31039692112e40.png?a=1

为什么会出现这个问题呢?因为 & 在 shell 中 表示任务在后台执行

在url中直接使用特殊符号会截断命令让命令失去原本意义.

shell 中某些符号被赋予了其他含义

# 根据上面表格我们把最终的命令为下面这样
curl -s -o kspf.jpeg https://upload-images.jianshu.io/upload_images/6572036-bb31039692112e40.png?a=1%25b=2

原文地址:https://kspf.xyz/archives/155/