9

当我尝试运行 test.sh 脚本时,我总是收到来自 curl 的错误:

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

测试.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

您能否让我知道脚本中有什么问题,因为我知道“空间”转义有问题,但不知道如何解决。

我也尝试了以下组合,但结果相同:

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

升级版:

bash / dash 仅在服务器上可用。(/bin/sh --> bash)

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

2 回答 2

19

运行以下命令:(删除Content-Type后的空格)

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

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

RESPONSE=`$TEST`
echo $RESPONSE
于 2012-08-21T09:43:59.143 回答
1

您可以尝试:bash -c your_bash_file.sh它对我有同样的问题

于 2015-05-06T07:08:31.477 回答