- ベストアンサー
curlのオプションを変数に入れたい
curlのオプションを変数に入れると… $ X_example1="-H X-example1: example" $ curl $X_example1 test.com curl: (6) Could not resolve host: example のようになってしまい、正しくヘッダーがセットされないようです。 原因の解説と対策をお願いできないでしょうか。 宜しくお願い致します。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
-H には引数1つで渡さないといけません。 誤: curl -H Foo: Bar example.com これは、Foo: だけが -H のパラメーターで、Bar は取得するURL(ホスト名)とみなされます。 正: curl -H 'Foo: Bar' example.com 引用符によって「Foo: Bar」が1つとみなされ、それが-Hのパラメーターになります。 じゃあ、 X_example1="-H 'X-example1: example'" curl $X_example1 test.com と書けばいいかというと、そうはなりません。 ただ、シェルの場合、引用符の解釈をした後で、変数展開して、それから引数の分割をするので、変数の中に引用符を含めてもそれは引数の分割には影響しません。もう一回引用符の解釈をして欲しいので、evalを使います。 X_example1="-H 'X-example1: example'" eval curl $X_example1 test.com
お礼
変数の展開と引数の分割の順番が関係していたのですね。 勉強になりました。ありがとうございました。