角かっこを含むcurlにURLを渡そうとすると、エラーで失敗します。
$ 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'
興味深いことに、バックスラッシュを使用してエスケープしますonlyエラーコード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.