在 bash 脚本上使用curl参数,其中某些字符会破坏字符串

在 bash 脚本上使用curl参数,其中某些字符会破坏字符串

我想不通。

我有这个:

id=$(curl -s --data "content=${1}&comment=${dtime}&mode_name=JavaScript" \
        https://paste.merkoba.com/save.php | jq -r '.url')

内容可以是这样的:

#[derive(Debug, Clone)]
struct Main<'a>
{
    point: &'a Point,
    letter: char
}

由于内容有一个 & 字符,curl 字符串会中断。

如何将内容转换为转义字符串,或者如何格式化 curl 命令才能正常工作?

答案1

而不是对每个部分--data使用 a 。 curl 将对值部分进行编码,并添加中间的.--data-urlencodevar=value&

curl \
--data-urlencode "content=${1}" \
--data-urlencode "comment=${dtime}" \
--data-urlencode "mode_name=JavaScript" ...

(同样适用于 GET,只需添加选项即可-G)。

相关内容