2010-11-11 114 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,使其可读的)。