2010-11-11 115 views
3

以下curl語句在我的shell腳本中正常工作。在CURL中擴展變量

curl -Ld'username=user&password=password&source=oksoft&dmobile='$mnumber'&message=Slave is working OK' http://167.123.129.195/smsclient//api.php 

手機號碼按預期展開。但是,當我使用一個變量的消息參數,我得到$ myvar輸出,而不是擴展變量。

curl -Ld'username=user&password=password&source=oksoft&dmobile='$mnumber'&message="$myvar"' http://167.123.129.195/smsclient//api.php 

如何使用變量作爲消息?

回答

8

單引號禁止擴展。切換報價。

curl ...'..."'"$myvar"'"...'... 
0

這取決於您正在運行的shell。 「$ var」將在csh上運行。 在windows下你應該使用「%」符號。

3

$myvar用單引號括起來,$mnumber不是。最內層的引號是雙重的並不重要,它是shell用來確定它是否應該進行可變擴展的最外層引號。額外的單引號之前和之後$myvar

curl -Ld'...dmobile='$mnumber'&message="'$myvar'"' http://... 

注意:

重寫它像這樣(我縮短的URL,使其可讀的)。