🐷

http ヘッダを bash で処理するときは改行コードに注意

に公開

MCP(ModelContextProtocol)の確認で, curl で POST メッセージつくろうと,
Claude くんに相談しながら, session-id 抜き出して処理しようとしました.

たとえば...

$ curl -D response_header.txt ...

grep -i "mcp-session-id" response_header.txt | cut -d' ' -f2 > sess_id.txt
sess_id=`cat sess_id.txt`
sess_header="mcp-session-id: ${sess_id}"


$ curl -H "${sess_header}" ...

しかし, 状況によってはうまくいかない.
...原因は改行コードでした!

Claude くんさぁ... 😡

http サーバのいくつかは '\r\n' で改行コード返します. そのため cat で session 文字列抽出では '\r' がのこりうまくいきませんでした.

解決

bash だと tr あたり使って

sess_id=`echo $(cat sess_id.txt) | tr -d '\r'`

として '\r' を除去しましょう.

Discussion