web-dev-qa-db-ja.com

定義されたContent-Typeを使用して.shスクリプトからcurlを実行します

Test.shスクリプトを実行しようとすると、curlから常にエラーが発生します。

curl: (6) Couldn't resolve Host 'application'

test.sh:

#!/bin/sh
CT="Content-Type:\ application/json"

TEST="curl http://127.0.0.1 -H $CT"
echo $TEST

RESPONSE=`$TEST`
echo $RESPONSE

しかし、コンソールから次のコマンドを実行するだけで、すべてうまくいきます。

curl http://127.0.0.1 -H Content-Type:\ application/json

'space'エスケープに問題があることは理解していますが、修正方法がわからないため、スクリプトの問題点を教えてください。

また、次の組み合わせを試しましたが、結果は同じです。

CT="Content-Type: application/json"
TEST="curl http://127.0.0.1 -H \"$CT\""

PD:

bash/dashはサーバーでのみ使用できます。 (/ bin/sh-> bash)

GNU bash, version 4.2.10(1)-release (x86_64-pc-linux-gnu)
8
kaspian

次を実行します:(Content-Typeの後のスペースを削除します)

#!/bin/bash
CT="Content-Type:application/json"

TEST="curl http://127.0.0.1 -H $CT"
echo $TEST

RESPONSE=`$TEST`
echo $RESPONSE
15
Kuf

あなたはで試すことができます:bash -c your_bash_file.shそれは同じ問題で私のために働いた

1