2013-11-21 88 views
0

我正在運行帶有curl命令的bash腳本。 我從屬性文件中讀取用戶名,密碼和url。 但是,當命令執行時,響應告訴我你沒有權限訪問此頁面。 我打印出整個捲曲命令,它是正確的。包含參數的curl命令的Bash腳本問題

下面是部分代碼:

這給了我響應說不授權:

curl -u $USERNAMEVAL:$PWDVAL $URLVAL 

這個完美的作品甚至從裏面bash程序:

curl -u test\\test:test www.blah.com 

可能是什麼問題?任何幫助將不勝感激。

+0

你可能要添加要使用NTLM的事實。 ; auth = NTLM –

+0

這可能與反斜槓的引用有關。你能告訴我們你如何賦值給'$ USERNAMEVAL'嗎? –

+0

我通過以下方式從屬性文件中讀取值,將值添加到$ USERNAMEVAL中:for cat in cat webservice.properties | grep -v ^#' do name = $(echo $ line | awk -F \ ='{print $ 1}') value = $(echo $ line | awk -F \ ='{print $ 2}') #echo $ name = $ value if [「$ name」==「$ URL」];然後 URLVAL = $ value fi if [「$ name」==「$ USERNAME」];然後 USERNAMEVAL = $ value fi if [「$ name」==「$ PWD」];那麼 PWDVAL = $值 fi 完成 – kayzid

回答

0

當我有一個情況下,在Bash shell腳本中的命令失敗,但我認爲相同的命令是相同的參數工作時,我手動運行它,我懷疑與參數值或參數引用。

如隔離問題的第一步,我建議立即行

curl -u $USERNAMEVAL:$PWDVAL $URLVAL 

,然後添加一些諸如

echo "curl -u $USERNAMEVAL:$PWDVAL $URLVAL" 

甚至(非常清楚):

echo "\$USERNAMEVAL(${#USERNAMEVAL}): \"$USERNAMEVAL\"" 
echo "\$PWDVAL(${#PWDVAL}): \"$PWDVAL\"" 
echo "\$URLVAL(${#URLVAL}): \"$URLVAL\"" 
echo "curl -u $USERNAMEVAL:$PWDVAL $URLVAL" 

這將打印每個用於const的變量的名稱,長度和值請修改curl命令。

例如爲:

​​

此打印:

$USERNAMEVAL(10): "test\\test" 
$PWDVAL(4): "test" 
$URLVAL(12): "www.blah.com" 
curl -u test\\test:test www.blah.com