2015-03-25 74 views
0

我有一个curl命令,我想从shell脚本内部执行。 我的脚本如下:变量不在linux内部的curl命令中扩展

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命令是如何形成的,我得到它(用户ID和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" 

但是,如果我直接运行相同的命令从命令行,其运行良好。请帮助。

问候, 史尔皮

+0

'echo $ id',等等......从那里开始,追溯问题出处。 – 2015-03-25 09:48:24

+0

“我试着回应” - 以及“:”发生了什么? ..:/ – 2015-03-25 09:52:37

+0

这可能有所帮助:https://stackoverflow.com/questions/32273446/encode-url-variable-with-curl 可悲的是,我还无法测试它 – Shushiro 2017-11-08 11:44:33

回答

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

你不能有空格周围=在shell变量赋值。