一些研究揭示了一些有用的 stackexchange 帖子,即扩展 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 的人可以在一秒钟内处理它。
谢谢!