特定の文字が文字列を破るbashスクリプトでカールパラメータを使用する

特定の文字が文字列を破るbashスクリプトでカールパラメータを使用する

わかりません。

私はこれを持っています:

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
}

内容に & 文字があるため、カール文字列が壊れます。

コンテンツをエスケープされた文字列に変換するにはどうすればよいですか?それとも、カールコマンドが正しく機能するようにフォーマットするにはどうすればよいですか?

答え1

--data各部分にaを使用する代わりに。カールは値部分をエンコードし、中間部分を追加します。--data-urlencodevar=value&

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

(GETにも同様に適用されます。オプションを追加するだけです-G)。

関連情報