2013-11-28 61 views
1

我的問題是如何讓這個慶典的代碼運行:如何使用cURL在URL中使用分號和變量?

#!/bin/sh 
actionString = printpage 
curl 'www.example.com/index.php?action=$actionString;post=5' 

我的問題是,如果我不逃避加上引號的URL,那麼它將停止後的處理URL「;」,但如果我確實有引號,它不會識別變量。是否有一些技巧可以通過這個?謝謝您的幫助。

回答

1

使用不禁止參數替換的引號。

curl "http://www.example.com/index.php?action=$actionString;post=5" 
+1

http://mywiki.wooledge.org/Quotes – tripleee

0

變量不是單引號內的評價:

greeting=hello 
echo 'say $greeting; ...' # outputs literally: say $greeting; ... 

變量是雙引號內的評價:

echo "say $greeting" # outputs: say hello; ... 

你可以引述需要報價參數只是一部分,你可以對某些部分使用雙引號,對其他部分使用單引號。所有這些都是等價的:

echo say $greeting"; ..." 
echo say $greeting'; ...' 
echo "say $greeting"'; ...' 
echo say $greeting\; ... 
你的情況

因此,這些將所有的工作:

curl "http://www.example.com/index.php?action=$actionString;post=5" 
curl http://www.example.com/index.php?action="$actionString;post=5" 
curl http://www.example.com/index.php?action="$actionString;"post=5 

,如果actionString沒有特殊字符,這將工作太:

curl http://www.example.com/index.php?action=$actionString';post=5'