一部の調査では、いくつかの便利な stackexchange の投稿、つまりCURLで変数を展開することが明らかになりましたが、その回答では、スペースを含む bash 変数を適切に処理していないようです。
awk の出力に変数を設定し、部分文字列の文字列を解析しています (実際には 150 文字に切り詰めています)。curl を介して POST しようとしている文字列にスペースが含まれています。
次の 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)}')"
そのため、POST される唯一の部分smsbody
は$HOSTNAME$
(たまたま空白文字のない文字列) です。
bash変数を適切にネストして展開するために使用する必要があるcurl構文は何ですか?ただし、単一のデータフィールドとして取得されますか?
かなり些細なことのように思えますが、運が悪かったので、しばらく引用符をいじりました。より優れた CLI-fu を持つ人なら、すぐに処理できると思います。
ありがとう!