【发布时间】:2011-10-03 15:26:09
【问题描述】:
一些研究揭示了一些有用的 stackexchange 帖子,即 expanding variable in CURL,但给出的答案似乎无法正确处理其中包含空格的 bash 变量。
我正在为 awk 的输出设置一个变量,将一个字符串解析为一个子字符串(实际上截断为 150 个字符)。我试图通过 curl 发布的字符串中有空格。
当我使用以下 curl 参数时,POST 变量 Body 设置为字符串中第一个空格之前的部分。
curl -X POST 'https://api.twilio.com/2010-04-01/Accounts/GUID/SMS/Messages.xml' -d 'From=DIDfrom' -d 'To=DIDto' -d 'Body="'$smsbody'" -u SECGUID
smsbody 设置为:
smsbody="$(echo $HOSTNAME$ $SERVICEDESC$ in $SERVICESTATE$\: $SERVICEOUTPUT$ | awk '{print substr($0,0,150)}')"
所以smsbody 中唯一被发布的部分是$HOSTNAME$(恰好是一个没有任何空格字符的字符串)。
我应该使用什么 curl 语法来正确嵌套 bash 变量以进行扩展,但被视为单个数据字段?
看起来很微不足道,但我在没有运气的情况下搞砸了一段时间。我认为有更好的 CLI-fu 的人可以在一秒钟内处理它。
谢谢!
【问题讨论】: