以下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
如何将变量用于消息?
答案 0 :(得分:8)
单引号禁止扩展。切换报价。
curl ...'..."'"$myvar"'"...'...
答案 1 :(得分:3)
$myvar
包含在单引号中,$mnumber
不是。最里面的引号是双引号并不重要,它是shell用来确定它是否应该进行变量扩展的最外层引号。
像这样重写它(我缩短了URL以使其可读):
curl -Ld'...dmobile='$mnumber'&message="'$myvar'"' http://...
请注意$myvar
之前和之后的额外单引号。
答案 2 :(得分:0)
这取决于您正在运行的shell。 “$ var”将适用于csh。 在Windows下,您应该使用“%”表示法。