2015-03-25 72 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變量賦值。