在CURL中扩展变量

时间:2010-11-11 08:03:53

标签: curl shell

以下curl语句在我的shell脚本中正常工作。

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

手机号码按预期展开。但是当我使用变量作为message参数时,我得到$ myvar输出而不是扩展变量。

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

如何将变量用于消息?

3 个答案:

答案 0 :(得分:8)

单引号禁止扩展。切换报价。

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

答案 1 :(得分:3)

$myvar包含在单引号中,$mnumber不是。最里面的引号是双引号并不重要,它是shell用来确定它是否应该进行变量扩展的最外层引号。

像这样重写它(我缩短了URL以使其可读):

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

请注意$myvar之前和之后的额外单引号。

答案 2 :(得分:0)

这取决于您正在运行的shell。 “$ var”将适用于csh。 在Windows下,您应该使用“%”表示法。

相关问题