1. ホーム
  2. url

[解決済み] URLを括弧付きでcurlに渡す

2022-03-17 04:18:45

質問

括弧を含むURLをcurlに渡そうとすると、エラーになります。

$ curl 'http://www.google.com/?TEST[]=1'
curl: (3) [globbing] illegal character in range specification at pos 29

しかし、両方の括弧をエスケープすると、うまくいくようです。

$ curl 'http://www.google.com/?TEST\[\]=1'

興味深いのは、バックスラッシュで のみ を実行すると、最初の括弧がエラーコード20497で無言で失敗します。

$ curl 'http://www.google.com/?TEST\[]=1'
$ echo $!
20497

質問は、一般的なケースでこれを修正する方法ですか?URLを自動的にエスケープする引数や、curlに渡す前にエスケープする必要がある文字の記述などはないのでしょうか?

解決方法を教えてください。

気にしないでください、ドキュメントに書いてありました。

-g/--globoff
              This  option  switches  off  the "URL globbing parser". When you set this option, you can
              specify URLs that contain the letters {}[] without having them being interpreted by  curl
              itself.  Note  that  these  letters  are not normal legal URL contents but they should be
              encoded according to the URI standard.