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)
次を実行します:(Content-Typeの後のスペースを削除します)
#!/bin/bash
CT="Content-Type:application/json"
TEST="curl http://127.0.0.1 -H $CT"
echo $TEST
RESPONSE=`$TEST`
echo $RESPONSE
あなたはで試すことができます:bash -c your_bash_file.sh
それは同じ問題で私のために働いた