变量不在linux中的curl命令中扩展

时间:2015-03-25 09:11:06

标签: linux curl

我有一个curl命令,我想从shell脚本中执行。 我的脚本如下:

iddn="`jq -r '.APPID_DN' /scr/resp.json`"
appid = `echo "$iddn" | awk -F',' '{print $1}'`
id =`echo $appid | awk '{print substr($0,4)}'`
apppwd = `jq -r '.APPID_PWD' /scr/resp.json`
tnname = `jq '.tnName' /scr/resp.json`

curl -i --user "$id":"$apppwd" -H "Content-Type: application/xml" -H "Accept: application/xml" -H "X-USER-IDENTITY-DOMAIN-NAME: tn11" --request GET "http://hostname.XX.XXXX.com:port/XXX/services/rest/version/auth/administrator/Clients"

但我收到了以下错误 HTTP / 1.1 401未经授权 未经授权。提供授权标题。

我尝试通过回显命令来查看curl命令是如何形成的,我得到它(userid和passwd根本没有传递),

curl -i --user  -H "Content-Type: application/xml" -H "Accept: application/xml" -H "X-USER-IDENTITY-DOMAIN-NAME: tn11" --request GET "http://hostname.XX.XXXX.com:port/XXX/services/rest/version/auth/administrator/Clients"

但是如果我直接从命令行运行相同的命令,它运行正常。请帮忙。

此致 史尔皮

1 个答案:

答案 0 :(得分:1)

id =`echo $appid | awk '{print substr($0,4)}'`
apppwd = `jq -r '.APPID_PWD' /scr/resp.json`

您不得在=中将空格放在shell变量赋值中。