経緯

circle ciからファイル名+拡張子の文字列を送らねばならなくなり、"Curl 文字列 結合"とか調べてたのですがなかなかいい感じのものが見つからないという問題がありました。

何がしたいか

NAME=${"abcd"}
とあった時に、この文字列の後ろに".txt"とつけて

"abcd.txt"という文字列にしたい。

環境

Mac OS High Sierra
デフォルトのターミナル

文字列を変数に代入する

変数NAMEに"abcd"という文字列を代入する。

$ NAME=$"abcd"

echoで

$ echo ${NAME}
abcd

と代入されていることを確認。

代入時に=の左右にスペースを入れられない。スペースを入れるとコマンドと解釈されるっぽい。

文字列を結合する 拡張子の.txtをつける

$ NAME=$"abcd"
$ FILENAME=$"${NAME}.txt"
$ echo ${FILENAME}
abcd.txt

Slackに送信して試す

先達がいっぱいいらっしゃいましたが、基本的には
[10分で出来る]シェルスクリプトの結果をslackに投稿

の記事等を参考に。

NAME=$"abcd"
FILENAME=$"${NAME}.txt"
echo ${FILENAME}
curl -X POST --data-urlencode "payload={\"channel\": \"#チャンネル名\", \"username\": \"UserName\", \"text\": \"${FILENAME}\" }" https://hooks.slack.com/services/XXXXXXX/XXXXXXX/xxxxxxxxxxxxxxxxxxx

スクリーンショット 2018-03-15 21.55.52.png
送れた。

最後に

Circle Ci上からでも無事に似たようなスクリプトで送ることができました。
間違っているところ等があったらご指摘お願いします。

https://qiita.com/takayukioda/items/edf371b3566bea64d046
も参考にしました。感謝。

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.